PHP魔術常量怎麼用

時間 2021-09-17 08:09:49

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.變數...