私はPHPが初めてです。「echo」を使用して配列要素を出力する場合、成功するかどうかはインデックスの名前に依存するようです。そんなはずないでしょ!? 気が狂いそうです。このコード:
$ARRAY['q1'] = 'foo';
echo "q1 is $ARRAY[q1]<br>";
正常に動作します。しかし、このコード:
$ARRAY['1q'] = 'foo';
echo "1q is $ARRAY[1q]<br>";
次のエラーが発生します。
解析エラー: 構文エラー、予期しない T_STRING、6 行目の /var/www/html/test.php の ']' が必要です
次のように問題を修正できることを知っています。
echo "1q is " . $ARRAY['1q'] . "<br>";
しかし、私の質問は、配列インデックス「1q」と「q1」が最初のコードブロックで問題になるのはなぜですか? 1q が何らかの定数であるかどうかも確認しましたが、そうではないようです。これは配列要素を文字列に挿入する不適切な方法ですか? (PHPのドキュメントからコピーしました。)
これは PHP 5.3.8 にあります。どんな助けでも本当に感謝しています。
編集: わかりました、PHP マニュアルのこのページの例 #8 からこのエコー構文を取得しました: http://www.php.net/manual/en/language.types.string.php どうやらそれは正しい方法ではありませんもの。ユーザー投稿のメモをマニュアルに追加します。
このエラーを生成するスクリプト全体は次のようになります。
<?php
$ARRAY['1q'] = 'foo';
echo "1q is $ARRAY[1q]<br>";
?>