- 2007-09-06 (木) 0:08
- PHP
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 )
- Newer: 人気のTwitterクライアントは?
- Older: CakePHP解説本を書きました
コメント (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