Home > PHP > PHP 5.2.4 の新機能

PHP 5.2.4 の新機能

  • 2007-09-06 (木) 0:08
  • PHP
この記事の所要時間: 453

PHP5.2.4がリリースされています。

基本バグフィックス&セキュリティアップデートのようなので大きな変更はありませんが、ChangeLogから興味を引いた変更点をメモしておきます。

–enable-versioningの廃止

追加機能では無いですが。

PHP3/PHP4を同時にApacheモジュールとして実行できるオプションでしたが、今回廃止されました。まあ昨今ではさすがに使っている人はいないでしょうけど、PHP3->PHP4の移行期には必須とも言えるオプションだったので、感慨深いものがあります。

PHPエラーをstderrに出力可能に

CGI/CLI版では、display_errors=stderrに設定することにより、PHPエラーをstderr(標準エラー)に出力することができるようになりました。なおデフォルトではこれまでどおりstdoutに出力されます。

stderrにPHPエラーを出力

$ php -d 'display_errors=stderr' -r 'a' > stdout 2> stderr
$ cat stdout
$ cat stderr
PHP Parse error:  syntax error, unexpected $end in Command line code on line 1
Parse error: syntax error, unexpected $end in Command line code on line 1

PHPエラーでHTTP 500を返す

PHP5.2.4ではPHPエラーでHTTP 500を返す参照

前項のPHPエラーをstderrに出力するのと同じノリですね。

PCRE_VERSION定数を追加

正規表現ライブラリであるPCREのバージョンを表す定数が追加されています。

$ php -r 'echo PCRE_VERSION . PHP_EOL;'
7.2 2007-06-19

あとGDでもバージョンを表す定数が追加されています。(GD_MAJOR_VERSION, GD_MINOR_VERSION GD_RELEASE_VERSION, GD_EXTRA_VERSION, GD_VERSION_STRING)

php_ini_loaded_file()追加

現在読み込んでいるphp.iniファイルの絶対パスを返す関数です。

CLIで何か挙動がおかしいなあと思ったら、読み込んでいるphp.iniを確認するのも良いかもしれません。

$ php -r 'var_dump(php_ini_loaded_file());'
string(29) "/home/hoge/php524/lib/php.ini"
$ php -c . -r 'var_dump(php_ini_loaded_file());'
string(18) "/home/home/php.ini"

ReflectionExtensionクラスにinfo()を追加

extensionをリフレクションするReflectionExtensionクラスにinfo()が追加されました。

$ php -r '$obj = new ReflectionExtension("mbstring"); $obj->info();'

mbstring

Multibyte Support => enabled
Multibyte string engine => libmbfl
Multibyte (japanese) regex support => enabled
Multibyte regex (oniguruma) version => 4.4.4
Multibyte regex (oniguruma) backtrack check => On

mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.

Directive => Local Value => Master Value
mbstring.language => neutral => neutral
mbstring.detect_order => no value => no value
mbstring.http_input => pass => pass
mbstring.http_output => pass => pass
mbstring.internal_encoding => ISO-8859-1 => no value
mbstring.substitute_character => no value => no value
mbstring.func_overload => 0 => 0
mbstring.encoding_translation => Off => Off
mbstring.strict_detection => Off => Off

ReflectionClass::getDefaultProperties()でstaticクラス変数が取得可能に

ReflectionClass::getDefaultProperties()でstaticクラス変数が取得できるようになっています。

<?php
class Foo
{
    public static $fooStatic = 'foo';
    protected $foo = 'foo';
}

$class = new ReflectionClass('Foo');

print_r($class->getDefaultProperties());
$ /home/hoge/php523/bin/php ref.php 
Array
(
    [foo] => foo
)

$ /home/hoge/php524/bin/php ref.php 
Array
(
    [fooStatic] => foo
    [foo] => foo
)
Pocket

follow us in feedly

コメント (Close):1

Nlslvasa 08-12-14 (日) 3:05

Thanks!,

トラックバック:0

このエントリーのトラックバックURL
/blog/2007/09/php_524_added.html/trackback
Listed below are links to weblogs that reference
PHP 5.2.4 の新機能 from Shin x blog

Home > PHP > PHP 5.2.4 の新機能

検索
フィード
メタ情報

Return to page top