以下代码为什么在php中会报错?:
请帮忙。
$b = array("1" => "2")["1"];
我收到的错误是解析错误...请帮忙。
不幸的是,在PHP中,您需要执行以下操作:
$a = array("1" => "2");
$b = $a["1"];
感觉你的例子应该可以工作,因为在其他语言中也是这样。但这只是PHP的方式。
有几个要点需要注意。在创建数组时,不能立即从中提取数据。数值键会自动转换为整数,即使它们本来是字符串。
function Get($array, $key, $default = false)
{
if (is_array($array) === true)
{
settype($key, 'array');
foreach ($key as $value)
{
if (array_key_exists($value, $array) === false)
{
return $default;
}
$array = $array[$value];
}
return $array;
}
return $default;
}
使用方法如下:
$b = Get(array("1" => "2"), "1"); // 2
function Get($array, $key, $default = false)
{
if (is_array($array) === true)
{
return (array_key_exists($value, $array) === true) ? $array[$value] : $default;
}
return $default;
}
function getArrayValue(array $a, $index, $default=null) { return array_key_exists($index, $a) ? $a[$index] : $default; }
这样的东西? - Asaph
$b = array("1" => "2")["1"]
没有多大意义,因为数组会立即被丢弃。同样的事情可以简单地写成$b = "2"
。从函数返回一个数组并立即访问数组元素的用例(如我上面提到的评论中的“John at nowhere do com”所提到的)更加实用。 - Asaph