1樓:day忘不掉的痛
例如需要開啟一個檔案,在物件建立時開啟,物件消亡時關閉
<?php
class fileread
function __destruct()
}?>
這兩個方法在繼承時可以擴充套件,
例如:<?php
class tmpfileread extends fileread
function __destruct()
}?>
__call()和__callstatic()
在物件中呼叫一個不可訪問方法時會呼叫這兩個方法,後者為靜態方法。
這兩個方法在可變方法(variable functions)呼叫中可能會用到。
<?php
class methodtest
public static function __callstatic ($name, $arguments)
}$obj = new methodtest;
$obj->runtest('in object context');
methodtest::runtest('in static context');
?>
__get(),__set(),__isset()和__unset()
當get/set一個類的成員變數時呼叫這兩個函式。例如將物件變數儲存在另外一個陣列中,而不是物件本身的成員變數
<?php
class methodtest
public function __get($name)
public function __isset($name)
public function unset($name)
}?>
__sleep()和__wakeup()
當在執行serialize()和unserialize()時,會先呼叫這兩個函式。
例如在序列化一個物件時,這個物件有一個資料庫連結,想要在反序列化中恢復連結狀態,則可以通過重構這兩個函式來實現連結的恢復。例子如下:
<?php
class connection
private function connect()
public function __sleep()
public function __wakeup()
}?>
__tostring()
物件當成字串時的迴應方法。例如使用echo $obj;來輸出一個物件
<?php
// declare a ****** class
class testclass
}$class = new testclass();
echo $class;
?>
這個方法只能返回字串,而且不可以在這個方法中丟擲異常,否則會出現致命錯誤。
__invoke()
呼叫函式的方式呼叫一個物件時的迴應方法。如下
<?php
class callableclass
}$obj = new callableclass;
var_dump(is_callable($obj));
?>
__set_state()
呼叫var_export()匯出類時,此靜態方法會被呼叫。
<?php
class a
}$a = new a;
$a->var1 = 5;
$a->var2 = 'foo';
var_dump(var_export($a));
?>
__clone()
當物件複製完成時呼叫。例如在設計模式詳解及php實現:單例模式一文中提到的單例模式實現方式,利用這個函式來防止物件被克隆。
<?php
public class singleton
public static function getinstance()
return self::$_instance;
}// 防止克隆例項
public function __clone()
}?>
2樓:匿名使用者
直接用例如
想要獲取指令碼檔案位置
__file__;
3樓:匿名使用者
看官方文件最好啦.
4樓:木同生活
想看看這個魔術常量是幹什麼的,直接echo 這個常量。比如:echo __dir__;看當前檔案目錄所在的位置。
5樓:俅俅火了
跟其他常量一樣, 直接在php裡面就可以 , 不用引號, 不用其他
6樓:匿名使用者
$current_file_path = __file__;
就這麼用
php如何遍歷出所有的常量,php常量獲取問題
define test testtesttesttest constants get defined constants true 上例的輸出類似於 array internal array e error 1 e warning 2 e parse 4 e notice 8 e core erro...
php怎麼用,PHP模板怎麼用
1,你的伺服器裝了apahce嗎?必須要安裝apache php mysql,zend是自帶的 2,如果上面裝好了,你可以先不傳你的php模板,在ie中輸入你的伺服器的ip地址,如果埠不是預設的80,你就加上埠 看看能否開啟主頁,預設的是 it works!3,都ok後,你傳你的檔案到apache資...
php中變數與常量的區別,3,PHP中變數和常量的區別
定義常量和定義變數的區別 1.常量前面沒有美元符號 2.常量只能用 define 函式定義,而不能通過賦值語句3.常量可以不用理會變數範圍的規則而在任何地方定義和訪問4.常量一旦定義就不能被重新定義或者取消定義5.常量的值只能是標量 更詳細的關於變數和常量的知識請參見參考資料。 變數與常量 1.變數...