php中的奇怪输出

ros*_*nbh 3 php arrays string

$a = '86';
var_dump($a); //ouput string(2) "86"
var_dump($a['wtf']); //output string(1) "8" 
Run Code Online (Sandbox Code Playgroud)

第二个输出是奇怪的,虽然这相当于

var_dump($a[0]); ////output string(1) "8" 
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么var_dump($ a ['wtf']); 输出字符串(1)"8"?

Ita*_*vka 7

$ a是一个字符串.
php中的一个字符串可以看作是一个字符数组(所以$ a [0] =='8'和$ a [1] =='6')
现在,你试图在地方访问字符串['wtf' ],因为PHP需要一个数字,它会尝试将'wtf'转换为数字.由于此字符串中没有数字,因此将其视为0.

"wtf1"被转换为0,因为它检查第一字符(感谢悲伤BUBE)
"1wtf"转换为1
"100"被转换成100
"dfsdgrgergregr"被转换为0

  • 是的,php就像圣经一样,你可以用很多方式解释结果:-D (4认同)