1
$tally['zero']['status']='hello';
echo $tally['zero']['status'];
//prints hello, this is expected

この例では、なぜ最初の文字だけが出力されるのでしょうか?

$tally = array( "zero" => '0');     
$tally['zero']['status']='hello';
echo $tally['zero']['status'];   
// prints h, I was expecting hello

この例で、エラーがスローされるのはなぜですか?

$tally['zero'] = 0;
$tally['zero']['status']='hello';
echo $tally['zero']['status'];
//prints Warning: Cannot use a scalar value as an array
4

2 に答える 2

3

この例では、なぜ最初の文字だけが出力されるのでしょうか?

$tally = array( "zero" => '0');
$tally['zero']['status'] = 'hello';
echo $tally['zero']['status']; // h

PHP では、文字列は配列のようにインデックスを作成でき、その場で変更することもできます。文字列にインデックスを付けると、 の最初の文字が の最初の文字に'status'割り当てられます。たとえば、次のようになります。0hello$tally['zero']

$tally = array( "zero" => '01');
$tally['zero']['status'] = 'hello';
echo $tally['zero'];

「h1」を出力します。


この例で、エラーがスローされるのはなぜですか?

$tally['zero'] = 0;
$tally['zero']['status'] = 'hello';
echo $tally['zero']['status'];

エラーが言うように0、配列ではありません。インデックスを作成できないため、警告が表示されます。

于 2012-05-06T14:06:03.763 に答える
0

" と ' の使用には注意してください。" を使用している間、コンテンツは可変値として解釈される可能性があります。

0 != '0'   number/string

ここにすべての謎が隠されていると思います。

于 2012-05-06T14:24:01.553 に答える