我在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的最大功能之一是它_does_允许字符串键; '['none']'是一个有效的密钥名称。 – Bojangles
+1同样很好的解释,在字符串上使用'[]'会尝试以数组组件的形式访问它的字符。 –
@JamWaffles绝对!但那是与关联数组一起工作的时候。在这种情况下,我们正在做一些类似'Dodajogłoszenie'['none']',它不支持命名键。 –