Time of Update: 2016-11-23
可以把在類中始終保持不變的值定義為常量。在定義和使用常量的時候不需要使用 $ 符號。常量的值必須是一個定值,不能是變數,類屬性,數學運算的結果或函數調用。介面(interface)中也可以定義常量。自 PHP 5.3.0 起,可以用一個變數來動態調用類。但該變數值不能為關鍵字(如 self,parent 或 static)。Example #1 定義和使用一個類常量class MyClass{ const constant = 1; function showConstant(){
Time of Update: 2016-11-23
很多開發人員寫物件導向的應用程式時對每個類的定義建立一個 PHP 源檔案。一個很大的煩惱是不得不在每個指令碼開頭寫一個長長的包含檔案清單(每個類一個檔案)。在 PHP 5 中,不再需要這樣了。可以定義一個 __autoload() 函數,它會在試圖使用尚未被定義的類時自動調用。通過調用此函數,指令碼引擎在 PHP 出錯失敗前有了最後一個機會載入所需的類。Tipspl_autoload_register() 提供了一種更加靈活的方式來實作類別的自動載入。因此,不再建議使用 __autoload()
Time of Update: 2016-11-23
建構函式 ¶void__construct ([ mixed$args [, $... ]] )PHP 5 允行開發人員在一個類中定義一個方法作為建構函式。具有建構函式的類會在每次建立新對象時先調用此方法,所以非常適合在使用對象之前做一些初始化工作。Note: 如果子類中定義了建構函式則不會隱式調用其父類的建構函式。要執行父類的建構函式,需要在子類的建構函式中調用parent::__construct()。如果子類沒有定義建構函式則會如同一個普通的類方法一樣從父類繼承(假如沒有被定義為
Time of Update: 2016-11-23
繼承已為大家所熟知的一個程式設計特性,PHP 的物件模型也使用了繼承。繼承將會影響到類與類,對象與對象之間的關係。比如,當擴充一個類,子類就會繼承父類所有公有的和受保護的方法。除非子類覆蓋了父類的方法,被繼承的方法都會保留其原有功能。繼承對於功能的設計和抽象是非常有用的,而且對於類似的對象增加新功能就無須重新再寫這些公用的功能。Note:除非使用了自動載入,否則一個類必須在使用之前被定義。如果一個類擴充了另一個,則父類必須在子類之前被聲明。此規則適用於類繼承其它類與介面。Example #1
Time of Update: 2016-11-23
範圍解析操作符(也可稱作 Paamayim Nekudotayim)或者更簡單地說是一對冒號,可以用於訪問靜態成員,類常量,還可以用於覆蓋類中的屬性和方法。當在類定義之外引用到這些項目時,要使用類名。自 PHP 5.3.0 起,可以通過變數來引用類,該變數的值不能是關鍵字(如 self,parent 和 static)。把 Paamayim Nekudotayim 選作雙冒號操作符的名字似乎有些奇怪。然而,這是 Zend 開發小組在寫 Zend Engine 0.5(被用於 PHP 3
Time of Update: 2016-11-23
本頁說明了用 static 關鍵字來定義靜態方法和屬性。static 也可用於定義靜態變數以及後期靜態繫結。聲明類屬性或方法為靜態,就可以不執行個體化類而直接存取。靜態屬性不能通過一個類已執行個體化的對象來訪問(但靜態方法可以)。為了相容 PHP 4,如果沒有指定存取控制,屬性和方法預設為公有。由於靜態方法不需要通過對象即可調用,所以偽變數 $this 在靜態方法中不可用。靜態屬性不可以由對象通過 -> 操作符來訪問。用靜態方式調用一個非靜態方法會導致一個 E_STRICT
Time of Update: 2016-11-23
PHP substr()函數可以 分割文字,但要分割的文字如果包括中文字元往往會遇到問題,這時可以用mb_substr()/mb_strcut這個函數,mb_substr() /mb_strcut的用法與substr()相似,只是在mb_substr()/mb_strcut最後要加入多一個參數,以設定字串的編碼,但是 一般的伺服器都沒開啟php_mbstring.dll,需要在php.ini在把php_mbstring.dll開啟。 舉個例子: <?php echo mb_substr(&
Time of Update: 2016-11-23
PHP 5
Time of Update: 2016-11-23
在你引進某個類檔案的情況下,想調用這個類檔案的時call_user_func_array函數,下面根據參數不同,貼兩個執行個體: <?php $func = function($arg1, $arg2) { return $arg1 * $arg2; }; var_dump(call_user_func_array($func, array(2, 4))); /* As of PHP 5.0 */ ?>將輸出: int(8) [1] <
Time of Update: 2016-11-23
使用介面(interface),可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容。介面是通過 interface 關鍵字來定義的,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。介面中定義的所有方法都必須是公有,這是介面的特性。實現(implements)要實現一個介面,使用 implements
Time of Update: 2016-11-23
自 PHP 5.4.0 起,PHP 實現了代碼複用的一個方法,稱為 traits。Traits 是一種為類似 PHP 的單繼承語言而準備的代碼複用機制。Trait 為了減少單繼承語言的限制,使開發人員能夠自由地在不同階層內獨立的類中複用方法集。Traits 和類組合的語義是定義了一種方式來減少複雜性,避免傳統多繼承和混入類(Mixin)相關的典型問題。Traits 和一個類相似,但僅僅旨在用細粒度和一致的方式來組合功能。Trait
Time of Update: 2016-11-23
定義和用法PHP extract() 函數從數組中把變數匯入到當前的符號表中。對於數組中的每個元素,鍵名用於變數名,索引值用於變數值。第二個參數 type 用於指定當某個變數已經存在,而數組中又有同名元素時,extract() 函數如何對待這樣的衝突。本函數返回成功設定的變數數目。文法extract(array,extract_rules,prefix)參數 描述array 必需。規定要使用的輸入。 extract_rules 可選。extract()
Time of Update: 2016-11-23
function str_split_unicode($str, $l = 0) { if ($l > 0) { $ret = array(); $len = mb_strlen($str, "UTF-8"); for ($i = 0; $i < $len; $i += $l) { $ret[] = mb_substr($str, $i, $l, "UTF-8");
Time of Update: 2016-11-23
PHP所提供的"重載"(overloading)是指動態地"建立"類屬性和方法。我們是通過魔術方法(magic methods)來實現的。當調用當前環境下未定義或不可見的類屬性或方法時,重載方法會被調用。所有的重載方法都必須被聲明為
Time of Update: 2016-11-23
經常在有的PHP開源系統中,看到有備份資料庫並匯出的方法,其實代碼不複雜,下面 大概講解下,以WINDOWS為例子,兩類方法,一個是目錄檔案夾要有執行指令碼許可權的, 一個個是沒有許可權的,代碼如下: 一) <?php $username = "root"; $password = ""; $hostname = "localhost"; $dbname = "test";
Time of Update: 2016-11-23
PHP 5 提供了一種定義對象的方法使其可以通過單元列表來遍曆,例如用 foreach 語句。預設情況下,所有可見屬性都將被用於遍曆。Example #1 簡單的對象遍曆class MyClass{ public $var1 = 1; public $var2 = 2; public $var3 = 3; protected $protected = 'protected var'; private $private = 'private
Time of Update: 2016-11-23
<?php/*** @package BugFree* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $*** Sort an two-dimension array by some level two items use array_multisort() function.**
Time of Update: 2016-11-23
__construct(),__destruct(),__call(),__callStatic(),__get(),__set(),__isset(),__unset(),__sleep(),__wakeup(),__toString(),__invoke(),__set_state()和 __clone() 等方法在 PHP 中被稱為"魔術方法"(Magic methods)。在命名自己的類方法時不能使用這些方法名,除非是想使用其魔術功能。PHP 將所有以
Time of Update: 2016-11-23
PHP 5 新增了一個 final 關鍵字。如果父類中的方法被聲明為 final,則子類無法覆蓋該方法。如果一個類被聲明為 final,則不能被繼承。Example #1 Final 方法樣本class BaseClass{ public function test(){ echo "BaseClass::test() called<br>"; } final public function moreTesting(){
Time of Update: 2016-11-23
在多數情況下,我們並不需要完全複製一個對象來獲得其中屬性。但有一個情況下確實需要:如果你有一個 GTK 視窗對象,該對象持有視窗相關的資源。你可能會想複製一個新的視窗,保持所有屬性與原來的視窗相同,但必須是一個新的對象(因為如果不是新的對象,那麼一個視窗中的改變就會影響到另一個視窗)。還有一種情況:如果對象 A 中儲存著對象 B 的引用,當你複製對象 A 時,你想其中使用的對象不再是對象 B 而是 B 的一個副本,那麼你必須得到對象 A 的一個副本。 對象複製可以通過 clone 關鍵字來完成(