我遇到了以下问题。当我在下面运行脚本时,我得到了字符串(1)“F”作为输出。怎么可能?没有错误,显示通知..没有。键入$ c中不存在的任何内容。你能解释一下吗?
<?php
$c = 'FEEDBACK_REGISTER_ACTIVATION_COMPLETED_MSG';
var_dump ($c['whatever']);
?>
我在PHP 5.3.3上遇到了这个问题。 (LINUX)
答案 0 :(得分:3)
PHP允许您对字符串进行索引:
$str = "Hello, world!";
echo $str[0]; // H
echo $str[3]; // l
PHP也会隐式地将字符串转换为整数,但是当它失败时,使用零:
$str = "1";
echo $str + 1; // 2
$str = "invalid";
echo $str + 1; // 1
所以它试图做的是索引字符串,但索引不是整数,所以它试图将字符串转换为整数,产生零,然后它访问字符串的第一个字符,这发生是F。
答案 1 :(得分:0)
当关联数组无法找到索引时,通过PHP的Magic类型转换,索引本身会转换为int 0,因此它就像 如果
$sample = 'Sample';
$sample['anystring'] = $sample[0];
所以如果o / p是'S';