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 ?
I have some strange issue with isset() function in PHP.
Let me show... .
<?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']) );
?>
The var_dump's will return:
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
Why the sixth var_dump() return TRUE ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当对字符串使用
[]
运算符时,它将期望一个整数值。如果没有得到,它将转换它。['none']
转换为[0]
,在您的情况下,它是D
。When using the
[]
operators on a string, it will expect an integer value. If it does not get one, it will convert it.['none']
is converted to[0]
which, in your case, is aD
.这是因为 PHP 是用 C 编写的。因此,由于 $aTestArray['dodaj'] 是字符串:
相同
与
0
It is because PHP is written in C. So since $aTestArray['dodaj'] is the string:
is the same as
because
is 0