Nhận thấy điều gì đó về lớp học của PHP và tôi không biết nếu nó là một lỗi hay tại sao nó hoạt động, đây là đoạn code:PHP class sở hữu tư nhân và phương pháp
<?php
class A {
private $prop = 'value';
public function fun()
{
$obj = new A;
$obj->echoProp();
}
private function echoProp()
{
echo 'Prop has value: '.$this->prop;
}
}
$obj = new A;
$obj->fun();
Và kết quả không phải là một lỗi như Tôi đã mong đợi kể từ khi tôi đang gọi một phương pháp riêng (thử nghiệm trên PHP 5.3.10-1ubuntu3.7 với Suhosin-Patch). Kết quả là "Giá trị có giá trị:"
Bạn có thể mong đợi phương pháp riêng được gọi thay thế như thế nào nếu không phải từ phương thức công khai? – str
Để cụ thể, bạn KHÔNG gọi phương thức riêng tư, bạn đang gọi một phương thức công khai gọi phương thức riêng tư. Phương thức công khai có quyền truy cập vào phương thức riêng, nhưng gọi '$ obj-> echoProp();' sẽ thất bại vì trong trường hợp đó bạn đang gọi phương thức riêng. Nếu kỳ vọng của bạn là đúng, không có gì có thể gọi phương thức riêng tư. – djheru