php 5 3帶來了什麼 二

2021-04-20 06:40:13 字數 1733 閱讀 1382

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