簡體   English   中英

PHP類的私有屬性和方法

[英]PHP class private property and method

注意到PHP的類,我不知道它是一個錯誤或它為什么工作,這是代碼:

<?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();

結果不是我所期待的錯誤,因為我正在調用一個私有方法(在PHP 5.3.10-1ubuntu3.7上用Suhosin-Patch測試)。 結果是“道具有價值:價值”

只要你在課堂上,就可以在任何實例上調用你的類的私有方法。

在php文檔http://www.php.net/manual/en/language.oop5.visibility.php#language.oop5.visibility-other-objects中說:

來自其他對象的可見性

即使它們不是相同的實例,相同類型的對象也可以訪問彼此私有和受保護的成員。 這是因為在這些對象內部時已經知道實現特定的細節。

所以這不是一個bug,而是一個想要的php功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM