Php 什么';$foo[';bar';]=";“价值”;和$foo[bar]=”;“价值”;
我有一段代码,看起来像:Php 什么';$foo[';bar';]=";“价值”;和$foo[bar]=”;“价值”;,php,Php,我有一段代码,看起来像: $foo[bar]="value 1"; $foo[time]="value 2"; $foo[location]="value 3"; ... 我认为应该是$foo['bar']=“value 1”,但我想知道为什么(以及了解更多相关信息的术语),以及如果这是“坏代码”,为什么它会起作用?不使用代码有什么危险?添加引号会破坏某些东西的可能性有多大 跟进/奖金: 嵌套数组呢 $colors=array("r"=>"red","b"=>"black","u"
$foo[bar]="value 1";
$foo[time]="value 2";
$foo[location]="value 3";
...
我认为应该是$foo['bar']=“value 1”
,但我想知道为什么(以及了解更多相关信息的术语),以及如果这是“坏代码”,为什么它会起作用?不使用代码有什么危险?添加引号会破坏某些东西的可能性有多大
跟进/奖金:
嵌套数组呢
$colors=array("r"=>"red","b"=>"black","u"=>"blue");
...
$foo[$colors["r"]]="value";
or
$foo["$colors["r"]"]="value";
这里我想要第一个,因为我用一个变量作为键 正如费德里科在评论中所说。这两者的意思不同。不带引号的是一个变量。$foo[bar]中变量bar的内容取决于之前分配给它的内容。带有引号“bar”的字符串是一个值固定的字符串,它将指定“bar”作为键 至于您的问题是哪一个以及为什么,这实际上取决于场景,但对于大多数情况,您可能会使用“条形”版本而不是可变条形版本,原因如下:
我希望这个答案能有所帮助。正如费德里科在评论中所说。这两者的意思不同。不带引号的是一个变量。$foo[bar]中变量bar的内容取决于之前分配给它的内容。带有引号“bar”的字符串是一个值固定的字符串,它将指定“bar”作为键 至于您的问题是哪一个以及为什么,这实际上取决于场景,但对于大多数情况,您可能会使用“条形”版本而不是可变条形版本,原因如下:
我希望这个答案有帮助。bar是变量,“bar”是字符串。
所以区别在于,bar可以存储值,“bar”本身就是一个值。两者都将用作数组$arr中的键。但使用bar时,数组索引将发生变化,“bar”键索引将被固定$arr[bar]可以是索引或关联,而$arr['bar']将是关联数组。bar是变量,“bar”是字符串。
所以区别在于,bar可以存储值,“bar”本身就是一个值。两者都将用作数组$arr中的键。但使用bar时,数组索引将发生变化,“bar”键索引将被固定$arr[bar]可以是索引或关联数组,$arr['bar']将是关联数组。
bar
是一个名为bar
的常量,其内容取决于您为其分配的内容<代码>'bar'是一个字符串。您可能希望使用后一种方法是的,除非bar
是一个已定义的常量,否则您会注意到:使用未定义的常量bar-假定为“bar”,在7.2中是一个警告,然后在未来的版本中是一个错误。关于后续操作,是的,第一种方法是正确的,因为它扩展到$foo['red']
bar
是一个名为bar
的常量,其内容取决于您为其指定的内容<代码>'bar'是一个字符串。您可能希望使用后一种方法是的,除非bar
是一个已定义的常量,否则您会注意到:使用未定义的常量bar-假定为'bar',在7.2中是一个警告,然后在将来的版本中是一个错误。关于后续操作,是的,第一种方法是正确的,因为它扩展到$foo['red']
。