1樓:匿名使用者
你問的是私有方法還是私有屬性?
你說的__get __set 是訪問和設定屬性用的。
__call才是訪問方法用的。
但這兩種都需要修改原始類,既然有這個許可權了,那私有方法有什麼必要定義呢?
另外一種獲取私有屬性或呼叫私有方法的思路是通過反射:
//myclass這個類中包含了一個名為myfun的私有方法
class myclass
}//通過類名myclass進行反射
$ref_class = new reflectionclass('myclass');
//通過反射類進行例項化
$instance = $ref_class->newinstance();
//通過方法名myfun獲取指定方法
$method = $ref_class->getmethod('myfun');
//設定可訪問性
$method->setaccessible(true);
//執行方法
$method->invoke($instance);
//獲取屬性
$property = $ref_class->getproperty('tmp');
//列印屬性
var_dump($property);
不知道你提這個單純是個問題,還是有別的需求,可以多看看php手冊學習一下。
php 訪問控制
php 反射
2樓:匿名使用者
利用closure::bind()
此方法是php 5.4.0中新增的。
php私有函式如何呼叫
3樓:
要先搞清楚復類和物件的關制系
將一個類例項化後就變成物件,私有函式只能在類內部使用,不能在類外,也就是物件上使用,也不能在子類中使用,如定義一個parent類
class parent
public function forall()
}現在我們例項化這個類,讓他變成一個物件
$obj = new parent();//例項化parent類,讓他變成一個物件並賦值給$obj
$obj->forall();//forall是公共函式,因此這裡可以執行看到輸出
$obj->_justformyself();//_justformyself是私有函式,類外不可使用,因此執行到這裡會報錯
4樓:匿名使用者
私有函式不能在函式外部呼叫的,只能在內部用
php類中定義了函式怎麼使用它,php類中定義了一個函式,怎麼使用它?
峰迴路轉 php類中定義的函式有幾種,例如 class a 受保護的方法 protected function test2 靜態方法 static function st 私有方法 private function test3 內部訪問 public function use 外部呼叫方法 a ne...
php如何在類中呼叫另檔案的類,PHP如何在類中呼叫另一個檔案的類
你的這種定義方法是錯誤的,在類定義中不能直接包含檔案或例項化物件,只能對類中屬性進行定義 請參考天南 46926125 寫的demo php demo code class b function d obj new b obj d day忘不掉的痛 在a類中 把 a 定義為公有的成員屬性。class...
PHP類的構造方法,PHP中物件導向中的建構函式的作用是什麼,為什麼需要它。
文件類共創空間 構造方法是類中的一個特殊方法。當使用 new 操作符建立一個類的例項時,構造方法將會自動呼叫,其名稱必須是 construct 所以通常用它執行一些有用的初始化任務。該方法無返回值。如果子類中定義了建構函式則不會暗中呼叫其父類的建構函式。要執行父類的建構函式,需要在子類的建構函式中呼...