PHP的类与对象-笔记
對象的賦值:
手冊中有如下一個例子,個人理解如下
$assigned = $instance; $reference =& $instance; $instance--->var = '$assigned will have this value'; $instance = null; var_dump($instance); var_dump($reference); var_dump($assigned);$assigned和$instance對應于同一個實例化的對象,指向同一個地址,$reference是$instance的別名。因此當$instance = null之后,$reference也是為null的,他們指向了新的內容為null地址。而$assigned仍然指向開始$instance所指向的地址,因此$assigned->var = '$assigned will have this value';輸出結果如下:
NULL NULL object(SimpleClass)#1 (1) {["var"]=>string(30) "$assigned will have this value" }自動加載對象:
PHP 5支持__autoload()函數自動載入對象,使用方法如下:
function __autoload($classname) { require_once $classname . '.php'; } $a = new a();系統會在當前目錄下尋找名為a.php的文件載入。
static關鍵字:
類成員或者方法聲明為static時,可以不實例化而直接進行訪問。使用::操作符來進行訪問。
PHP重載:
PHP重載分為屬性重載和方法重載兩種,當調用不可訪問或者未定義的方法或者屬性時,特殊的重載方法會被調用。屬性重載主要的重載函數有如下四個:
void __set ( string $name , mixed $value )? 用于對重載屬性賦值
mixed __get ( string $name ) 用于讀取未定義的屬性
bool __isset ( string $name ) 對未定義的屬性調用isset()和empty()時被調用
void __unset ( string $name ) 對未定義的屬性調用unset()時被調用
具體實現參見PHP手冊。
方法重載主要的重載函數有如下兩個:
mixed __call ( string $name , array $arguments ) 調用不可訪問的方法
mixed __callStatic ( string $name , array $arguments ) 調用靜態的不可訪問的方法
對象迭代:
PHP5提供了一種迭代(iteration)對象的功能,就像使用數組那樣,可以通過foreach 來遍歷對象中的屬性。默認情況下,在外部迭代只能得到外部可見的屬性的值。示例代碼如下:
class MyClass {public $var1 = 'value 1';public $var2 = 'value 2';public $var3 = 'value 3';protected $protected = 'protected var';private $private = 'private var';function iterateVisible() {echo "MyClass::iterateVisible:\n";foreach($this as $key =--> $value) {print "$key => $value\n";}}} $class = new MyClass(); foreach($class as $key => $value) {print "$key => $value\n";} echo "\n";$class->iterateVisible();輸出的結果為:
var1 => value 1 var2 => value 2 var3 => value 3MyClass::iterateVisible: var1 => value 1 var2 => value 2 var3 => value 3 protected => protected var private => private var轉載于:https://www.cnblogs.com/bigdog/archive/2011/08/12/2136021.html
總結
以上是生活随笔為你收集整理的PHP的类与对象-笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通用PE工具箱安装图解
- 下一篇: 电脑蓝屏原因分析利器