這是在php裡,最常看到三種宣告function的方式。
下面用code做個簡單解說:
這三個宣告方式,如果要在class外面使用的話,只有public可以,因為public意思就是公眾化的,開放的,大家都可以任意取用的。
而protected則是要透過parent class的用法,也就是extends就能調用了:
像這樣的方式,就能成功調用了!
至於private在所處的class裡面才能調用:
這樣就行了!
總結來說,public大家都能取用,protected則是父類別才能使用,private則是只能在宣告function的class裡面使用。
參考資料:
http://stackoverflow.com/questions/4361553/what-is-the-difference-between-public-private-and-protected
下面用code做個簡單解說:
class Test { public function public_function() { echo 'I am public function!'; } protected function protected_function() { echo 'I am protected function!'; } private function private_function() { echo 'I am private function!'; } } $test = new Test(); $test->public_function();
這三個宣告方式,如果要在class外面使用的話,只有public可以,因為public意思就是公眾化的,開放的,大家都可以任意取用的。
而protected則是要透過parent class的用法,也就是extends就能調用了:
class Test { public function public_function() { echo 'I am public function!'; } protected function protected_function() { echo 'I am protected function!'; } private function private_function() { echo 'I am private function!'; } } class Test2 extends Test { public function call_parents_function_protected() { $this->protected_function(); } } $test = new Test(); $test->public_function(); $test2 = new Test2(); $test2->call_parents_function_protected();
像這樣的方式,就能成功調用了!
至於private在所處的class裡面才能調用:
class Test { public function public_function() { echo 'I am public function!'; } protected function protected_function() { echo 'I am protected function!'; } private function private_function() { echo 'I am private function!'; } public function call_in_same_class() { $this->private_function(); } } $test = new Test(); $test->call_in_same_class();
這樣就行了!
總結來說,public大家都能取用,protected則是父類別才能使用,private則是只能在宣告function的class裡面使用。
參考資料:
http://stackoverflow.com/questions/4361553/what-is-the-difference-between-public-private-and-protected