日が経つにつれて天気は良くなりますが、PHP 5.3はどんどん近づいてきます。完全に武装する必要があります。
RC2、RC3、Stable(約1か月後)が最近登場しました。
最初に言いたいのは、5.2は5.1より遅いですが、5.3は5.1より速いことです。 5.3では、多くの最適化(リンクテーブルを含む)が導入されました。これは朗報です。
新しい予約語やその他のマイナーなポイントの導入を除いて、下位互換性の特別な問題はありません。
詳細については、こちらをご覧ください
-wiki.php.net/doc/scratchpad/upgrade/53さらに、多くの革新があります:
1. mysqlnd。ご存知のように、PHPはlibmysqlを介してCラッパーを介してMySQLサーバーと通信しますが、実装には大きなオーバーヘッドがあります(たとえば、mysql_fetch_assocを実行すると、メモリに3つものコピーがあります)。
MySQL Native Driverは、libmysqlの効果的なCレベルの代替です。 ただし、インターフェース(mysql、mysqli、PDO)がこのような影響を受けることはありません。
2.閉鎖。トイレの縁の下にcreate_function()が表示されるのにうんざりしていませんか?
$lambda = function() {echo 'Hello World!';};
$lambda();
* This source code was highlighted with Source Code Highlighter.
:
class myLambda
{
public function __invoke() {echo 'Hello World!';}
}
$lambda = new myLambda;
$lambda();
* This source code was highlighted with Source Code Highlighter.
, , :
$var = 'Hello World!';
$func = function() use ($var) {echo $var;};
$func();
* This source code was highlighted with Source Code Highlighter.
preg_replace_callback, .
$this . , .
, , use, .
wiki.php.net/rfc/closures3. namespaces. .namespace hello;
class msg
{
public static function write() {echo 'Hello';}
}
msg::write();
namespace World;
class msg
{
public static function write() {echo ' World!';}
}
msg::write();
* This source code was highlighted with Source Code Highlighter.
. namespace' , , . .
namespace' — (\).
php.net/namespaces4. .true-, .
$var = 'Hello World!';
echo $var?:'false';
// Hello World!
* This source code was highlighted with Source Code Highlighter.
, .
5. Label'. GOTO.Label' , , Label'.
$i = 1;
start:
echo ($i > 1?'-':'').$i;
if ($i++ < 5) {goto start;}
echo ' ';
// 1-2-3-4-5
* This source code was highlighted with Source Code Highlighter.
.
, :)
6. Garbage Collector.- PHP , .
7. SPL.-:
http://www.php.net/~helly/php/ext/spl/, : SplFixedArray, SplStack, SplDoublyLinkedList, SplQueue, SplPriorityQueue. .
, Spl phpinfo() :
$ php -i|less
$ php -r 'var_export(spl_classes());'
$ php --re spl|less
crocodile2u.Sherman81 .8. Late Static Binding__callStatic get_called_class().
.
PCRE 7.9 ( ), sqlite , .
- , , .
!