php 5.3的總體效能提公升了5 - 15%
在5.3以前,為了獲得當前指令碼的目錄,需要一次函式呼叫
plain text
code:
echo dirname
(__file__
); // < php 5.3
在5.3,只需要乙個魔術常量__dir__就解決了。
plain text
code:
echo __dir__;
// >= php 5.3
便捷的?:操作符,可以從兩個值/表示式中快速取得非空值。
plain text
code:
$a = true ?: false;
// true
$a = false ?: true;
// true
$a =
"" ?:
1; // 1
$a =
0 ?:
2; // 2
$a = array
() ?: array
(1);
// array(1);
$a = strlen
("") ?: strlen
("a");
// 1
新增了魔術方法__callstatic,功能和__call類似,但是僅對static方法有效。
plain text
code:
class helper
}helper::
test
("foo",
"bar"
); // test(foo,bar)
動態的呼叫靜態方法?動靜結合。
plain text
code:
class helper
}$a =
"helper";
$b =
"foo";
$a::$b
(); // helper::foo
不知道怎麼譯,可能留個原文更容易理解。靜態方法的事件處理時機有變化,以前是在編譯期處理,現在是執行期間處理。
在php 5.3之前,下面的**會輸出乙個a,但是這不是咱們要的,whoami方法已經在class b中重新定義,它本該輸出b才符合咱們想當然的思維。
plain text
code:
class a
public static function identity
() }
class b extends a
}b::
identity
(); // a <-- php <5.3
下面**中使用了static::whoami()來呼叫靜態方法。php 5.3之後,由於__class__是在執行期被處理,那麼這個例子中能順利抓到class b。
plain text
code:
class a
public static function identity
() }
class b extends a
}b::
identity
(); // b <-->= php 5.3
見mysqlnd成為php 5.3中的預設mysql驅動
但是pdo_mysql暫時還不支援mysqlnd,目前只有mysql(i)擴充套件可以用到
php5 3管理操作
php 5.3.3 中 php fpm 的重啟 終止操作命令 php 5.3.3 原始碼中已經內嵌了 php fpm,不用象以前的php版本一樣專門打補丁了,只需要在configure的時候新增編譯引數即可。關於php fpm的編譯引數有 enable fpm with fpm user www w...
php5 3使用手冊,php5 3 注意事項說明
php5.3 新特性1.支援命名空間 namespace 5.3以前 class zend db table select 表示當前這個類檔案位於zend db table下 5.3namespace zend db table class select 2.支援延遲靜態繫結5.3以前 class ...
php5 3使用手冊,php5 3 注意事項說明
本篇文章是對php5.3中需要注意的一些事項進行了詳細的分析介紹,需要的朋友參考下 php5.3 新特性1.支援命名空間 namespace 5.3以前 class zend db table select 表示當前這個類檔案位於zend db table下 5.3namespace zend db...