我知道PHP变量如何工作,但很难理解为什么这个脚本输出"我是r".而不是"我是B."
<?php
class fooo {
var $bar = 'I am bar.';
var $arr = array('I am A.', 'I am B.', 'I am C.');
var $r = 'I am r.';
}
$fooo = new fooo();
$arr = 'arr';
echo $fooo->$arr[1] . "\n";
//above line output
//I am r.
?>
Run Code Online (Sandbox Code Playgroud)
你正在定义$arr = 'arr';然后从字符串'arr'获取第二个字符,而不是类Foo中的数组,这就是为什么你得到'r'([1]从你的单词返回第二个字符).
解决方案?你应该替换:
echo $fooo->$arr[1] . "\n";
Run Code Online (Sandbox Code Playgroud)
有:
echo $fooo->arr[1] . "\n";
Run Code Online (Sandbox Code Playgroud)
你应该收到你想要的输出:
'I am B.'
Run Code Online (Sandbox Code Playgroud)