不确定如何命名这个问题,但我正在寻找反馈,为什么当我将变量设置为某个字符串时,它不会让我在函数中调用该变量...例如:
$name = "name";
$quote_name = "'".$name."'";
//echo of $name = name
//echo of $quote_name = 'name'
PHP不允许我致电:
if($value['name'] == $quote_name){...}
或者
if($value['name'] == '$name'){...}
但它允许我打电话(使用整个功能):
foreach($question_set_p1 as $key => $value) {
if($value['name'] == 'name') {
$first = $key;
break;
}
}
$data = array_filter($question_set_p1, function($arr){
return $arr['name'] == 'name';
});
为什么PHP允许我调用字符串而不是变量? 有没有办法可以说明变量而不是实际的字符串?
答案 0 :(得分:2)
删除第二个var中的引用,如下所示:
$name = "name";
$quote_name = $name;
if($value['name'] == $quote_name){...}
答案 1 :(得分:1)
假设
$value['name'] = 'abcd';
$name = 'abcd';
$quot_name = " ' ".$name." ' ";//(as you entered).
现在,如果你回显$quot_name
,它将返回'abcd'(带引号),如果你回显$value['name']
,它将返回abcd(没有引号)。
因此$quot_name
应该是$name
(不带引号),或者您也应该为$value['name']
添加引号。