PHP版本升级备忘录

请阅读以下内容。

PHP 5.3.x 到 PHP 5.4.x 的迁移
http://php.net/manual/zh/migration54.php

从PHP 5.4.x到PHP 5.5.x的迁移

PHP 5.5.x 到 PHP 5.6.x 的迁移
http://php.net/manual/zh/migration56.php

从 PHP 5.6.x 迁移到 PHP 7.0.x
http://php.net/manual/zh/migration70.php

应该确认的事情

尽可能从上述链接中查看详细信息,并列出可能受影响的部分。

PHP5.3转换为PHP5.4。

    • 呼び出し時の参照渡しを非サポート foo( &$val );

$a が文字列時、非数値のオフセットを指定したときのisset, emptyの評価

$a='abcd';
# $a[2]=> "c"


#PHP5.3の場合
>>> $a['b']
=> "a"
>>> empty($a['b'])
=> false
>>> isset($a['b'])
=> true

#PHP5.4の場合
$a['b'] =>
PHP warning:  Illegal string offset 'b' on line 1
>>> empty($a['b'])
=> true
>>> isset($a['b'])
=> false
    • php.ini タイムゾーンを必ず指定 date.timezone = “Asia/Tokyo”

short_open_tagの設定必要なしで常にshort_open_tag有効
継承でメソッドのオーバーライドを継承元と同じメソッド定義にする

Notice: Declaration of CsvUploadBehavior::setup() should be compatible with ModelBehavior::setup(Model $model, $config = Array)

PHP5.4 转为 PHP5.5.

    • Windows版PHPはVista以降でしか動かない

 

    SELF::CONSTANT と self::CONSTANTは同じ次扱い 
self, parent, static が、どんな場合でも大文字小文字区別しない

将PHP5.5升级至PHP5.6。

    • json_decode() がより厳格に(無効な形式のJSONは影響でる)

 

    • cURLでのファイルアップロード非推奨 CURLFile使う

 

    • iconv および mbstring のエンコーディング設定非推奨 代わりに default_charset

 

    • PHP 5.6.x における OpenSSL 関連の変更

 

    • ストリームラッパーが、SSL/TLS を使っている場合のピア証明書とホスト名の検証にデフォルトで対応 file_get_contens等でhttps://へのアクセス時にエラー出る可能性

 

    SSL や TLS の、特定のバージョンを指定できる

PHP 5的变更日志
http://php.net/zh/ChangeLog-5.php

广告
将在 10 秒后关闭
bannerAds