PHPのisset()関数に奇妙な問題があります。 私に見せてください...。文字列をインデックスとして使用する文字列変数のPHP isset()
<?php
$aTestArray = array(
'index' => array(
'index' => 'Główna'
),
'dodaj' => 'Dodaj ogłoszenie',
);
var_dump(isset($aTestArray['index']));
var_dump(isset($aTestArray['index']['index']));
var_dump(isset($aTestArray['dodaj']));
var_dump(isset($aTestArray['index']['none']));
var_dump(isset($aTestArray['index']['none']['none2']));
// This unexpectedly returns TRUE
var_dump(isset($aTestArray['dodaj']['none']));
var_dump(isset($aTestArray['dodaj']['none']['none2']));
?>
のvar_dumpの返されます:
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
をなぜ第六のvar_dump()がTRUEを返しますか?
です。 PHPの最高の機能の1つは、文字列キーを許可しないことです。 '['none']'は有効なキー名です。 – Bojangles
+1文字列に '[]'を使うと、配列コンポーネントとしてその文字にアクセスしようとしていることを説明すると良いでしょう。 –
@JamWaffles絶対に!しかし、それは連想配列で作業するときです。この場合、名前付きキーをサポートしていない '' Dodajogłoszenie '[' none '] 'のようなことをしています。 –