ホームページ >バックエンド開発 >PHPチュートリアル >PHP5.5 と空関数の以前のバージョンの違い_PHP チュートリアル

PHP5.5 と空関数の以前のバージョンの違い_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:28:15898ブラウズ

私のお気に入りの機能の 1 つですが、今日ついにこの機能の悪魔を発見しました。 Yangsao は次のコードを書きました。ローカルでテストするとすべて問題ありませんでしたが、サーバー上では SB でした。

コードをコピー コードは次のとおりです:

if(strlen($passwd) < 6 || empty($preg_replace("/d/", "", $passwd))) {
//do something
}

一般的な意味は、パスワードは 6 桁以上である必要があり、数字だけで構成することはできないということです。サーバーログを検索したところ、次のエラーが見つかりました:
コードをコピーしてください コードは次のとおりです:

PHP 致命的なエラー: /xxx/xxx/xx の書き込みコンテキストで関数の戻り値を使用できません.php on line xxx

グーグルで調べてみると、おそらく空のパラメータは関数にはできないということです。くそー、地元のエリアは明らかに良いです。ローカルのPHPが5.5、サーバーが5.3であることを確認しました。この機能は 2 つのバージョン間で進化しましたか?公式の PHP ドキュメントをすべて検索しましたが、手がかりが見つかりませんでした。その後、Google で必死に検索し、空の関数の紹介の下に誤ってクリックしてしまいました。

という小さな単語の行を見つけました。 コードをコピーします コードは次のとおりです:

注:
PHP 5.5 より前では、empty() は変数のみをサポートしており、それ以外の場合は解析エラーが発生します。 (trim($name)) 代わりに、trim( $name) == false を使用してください。
悪魔よ、こんなふうに中国人ユーザーを騙したくないでしょう。空の関数の使用シナリオを要約します:
1. PHP 5.5 より前のバージョンでは、この関数は変数の割り当てが 0、false、空の文字列、または null であるかどうかを確認するために使用されます。非変数パラメータがあると、この関数はエラーを報告します。

2.PHP 5.5 この関数は変数に限定されず、あらゆる値に適用できます。定数、関数の戻り値などを指定できます。


http://www.bkjia.com/PHPjc/802221.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/802221.html技術記事私のお気に入りの機能の 1 つですが、今日ついにこの機能の悪魔を発見しました。 Yangsao は次のコードを書きました。ローカルでテストするとすべて問題ありませんでしたが、サーバー上では SB でした。 コピー...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。