vì vậy tôi đang cố gắng giải quyết vấn đề tôi đang gặp phải khi thiết kế các lớp PHP. Tôi đã tạo một lớp cơ sở và gán các biến riêng. Tôi có các lớp con mở rộng lớp cơ sở này, làm cho tham chiếu và thay đổi các biến riêng này thông qua các hàm của lớp cơ sở. Dưới đây là một ví dụ, hãy nhớ tôi vẫn còn bối rối về sự khác biệt giữa private
và protected
phương pháp/biến (cho tôi biết nếu tôi đang làm nó sai!):PHP Truy cập biến riêng tư từ trẻ em
base.class.php
<?php
class Base {
private $test;
public function __construct(){
require('sub.class.php');
$sub = new Sub;
echo($this->getTest());
}
public function getTest(){
return $this->test;
}
protected function setTest($value){
$this->test = $value;
}
}
?>
sub.class.php
<?php
class Sub extends Base {
public function __construct(){
parent::setTest('hello!');
}
}
?>
Vì vậy, tôi mong đợi kết quả được hello!
in trên màn hình - thay vì không có gì là. Có thể có một sự hiểu lầm cơ bản về các lớp học về phía tôi, hoặc có lẽ tôi đang làm điều gì đó sai trái. Bất kỳ hướng dẫn nào được đánh giá rất nhiều! Cảm ơn.
EDIT:
Cảm ơn bạn để tất cả mọi người đã đóng góp một câu trả lời - Tôi nghĩ rằng, bất chấp những giải pháp tuyệt vời, đó là lớp con thực sự không phải là điều tôi cần - có vẻ như ủy lớp có thể hữu ích hơn vào thời điểm này, như Tôi không thực sự cần tham khảo các hàm cơ sở từ bên trong các lớp khác.
thử vang ($ sub-> getTest()); – bumperbox
Thử [PHP5 OOP] (http://www.php.net/oop5). – meze
Không có bất kỳ 'echo' hoặc' print' nào xuất ra một cái gì đó trên màn hình – zerkms