-1
$fr = "hammad";
$frhammad = "nuthing";
echo $fr{$fr};

Output:
h

予想される出力は

"Nuthing"

「Nuthing」をエコーする形式は何ですか?

4

2 に答える 2

6

$x{$n} は文字列 $x を文字の配列として扱う標準構文であるため、$n はその配列内の文字の数値インデックス位置です。あなたの場合、インデックス位置は数値以外の文字列である $fr によって識別されるため、PHP の緩い入力はそれを整数 0 に変換し、位置 0 の文字をエコーし​​ます... 文字列の最初の文字

編集

マニュアルからの必須の引用:

文字列アクセスと文字による変更

$str[42] のように、角かっこを使用して、文字列の後に目的の文字のゼロベースのオフセットを指定することにより、文字列内の文字にアクセスして変更できます。この目的では、文字列を文字の配列と考えてください。関数 substr() および substr_replace() は、複数の文字を抽出または置換する場合に使用できます。

注: 同じ目的で、$str{42} のように中括弧を使用して文字列にアクセスすることもできます。

編集#2

コメントから最新の質問に答えるには:

質問で指定したように、変数の名前をどのように連結しますか?

$fr = "hammad"; 
$frhammad = "nuthing"; 
$varName = 'fr'.$fr;
echo $$varName; 

また

$fr = "hammad";
$frhammad = "nuthing";
echo ${'fr'.$fr};
于 2012-04-11T06:40:31.437 に答える
0

可変変数補間の正しい構文は次のとおりです。

$fr = "hammad";
$frhammad = "nuthing";
echo ${fr.$fr};
于 2012-04-11T06:43:33.853 に答える