PHP5學習筆記 用 call 實現方法過載

2021-09-08 02:06:34 字數 708 閱讀 4292

今天在網上發現了一片好文章,介紹_call()方法。

依靠這個方法可以實現方法過載,這是找了好久的東西了。

發在這裡,算作筆記。

---------------------------------------

php5 的物件新增了乙個專用方法 __call(),這個方法用來監視乙個物件中的其它方法。如果你試著呼叫乙個物件中不存在的方法,__call 方法將會被自動呼叫。

例七:__call

<?php

class foo 

} $x = 

new foo();

$x->dostuff();

$x->fancy_stuff();

?>

這個特殊的方法可以被用來實現「過載(overloading)」的動作,這樣你就可以檢查你的引數並且通過呼叫乙個私有的方法來傳遞引數。

例八:使用 __call 實現「過載」動作

<?php

class magic 

} private

function foo_for_int(

$x)   

private

function foo_for_string(

$x) 

} $x = 

new magic();

$x->foo(3);

$x->foo("3");

?>

PHP5權威程式設計 學習筆記

php5權威程式設計 一 如何嵌入到html當中 print hello,world 執行的輸出 如果php有輸出 替換掉php 二 注釋 1 2 3 三 變數 陣列元素或物件的屬性 標誌當字首,以字母或下劃線開始。php不支援全域性變數。變數都被限制到本地範圍,而且如果是在函式中建立的,它們的生存...

PHP5權威程式設計學習筆記

php4中,不使用 construct 作為建構函式的名字,必須使用類的名字定義乙個方法,就像在c 中一樣。php5中,使用新的統一的建構函式命名方式 construct 當然,使用類名同樣也是可以的。但是,你如果兩個同時使用的話,系統缺省會使用 construct 的形式。class person...

php5 學習記錄 2

一 過載效能 1 屬性和方法的過載 php 允許通過實現特殊的 方法對屬性的訪問和方法的呼叫進行過載,這些 方法將在相關的屬性或者方法不存在時呼叫。這種特性讓你在中端這些動作並定義你自己的功能時獲得巨大的靈活性。你可以實現下面的方法原型 function get property 傳遞屬性的名字,並...