ホームページ >バックエンド開発 >PHPチュートリアル >php5.4.0に関するいくつかの小さな疑問

php5.4.0に関するいくつかの小さな疑問

WBOY
WBOYオリジナル
2016-06-13 13:39:46841ブラウズ

php5.4.0 のいくつかの小さな問題
今夜 php5.4.0 をアップデートしたところです。環境は Windows7 + Apache2.2 + MySQL5.1 + PHP5.4.0 で、以前のバージョン (php5.2) は更新されていません。
タイトルにあるように、2 つの小さな問題があります:

1. php5.4.0 の名前空間の問題:

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php
namespace Foo;
class test{
/*hello php 5.4.0*/
}
?>

が表示されます:
致命的なエラー: 名前空間宣言ステートメントは、F:htdocsrules.php のスクリプトの 2 行目の最初のステートメントである必要があります
何が問題ですか? ? ?どんなに宣言しても無駄です。 。 。 。マニュアルからコードを直接コピーしてもエラーが発生します。 。 。 。 php5.4自体のエラーなのか、それとも私の設定に問題があるのでしょうか? ?

2. コードを直接投稿します:
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->$phpinfo = function (){
        echo 'hello world!';
    }
    
    phpinfo();
    $phpinfo();


エラー コード: 解析エラー: 構文エラー、予期しない 'phpinfo' (T_STRING)
これは問題ないと思いますが、なぜこのようになるのか知りたいのですが、直接オーバーライドすると関数宣言の時点で致命的なエラーが発生しますが、ここでは正常に実行でき、PHPも同様です。組み込みメソッドが直接上書きされる(正常に出力できないが)のですが、これは5.4にだけあるはずではなく、他のバージョンにも存在すると思いますが、バグでしょうか? ?ありがとうございます
また、バージョン5.4の特徴をいくつか教えていただけますか? ?
私は長い間 PHP を触っていなかったので、PHP の新機能を理解するどころか、少し慣れています。 。 。 。
またよろしくお願いします!

-----解決策---------
1. エラー メッセージは非常に明確です。プログラムに BOM ヘッダーがある可能性があります。 2 の前にスペースを含むものは存在できません。これは $phpinfo に値を代入しているため、行を正しく閉じるには行の末尾にセミコロンを追加する必要があります。
3. エラー メッセージで指定されたパスが正しいかどうかを確認します。
------解決策------------------
1 つ目は bom の問題であるはずです
2 つ目は $phpinfo を匿名関数として定義するだけで、phpinfo() とは何の関係もなく、その後に ';' を追加するだけで問題ありません。
新機能は次の構文をサポートします:
PHP コード
//短い配列構文
$a=[1,2,3,4,5,6];

//配列の逆参照
関数 foo(){
 配列(1,2,3,4)を返します;
}
エコー foo()[1];
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。