不知道如何命名这个问题,但我正在寻找反馈,解释为什么当我将变量设置为某个字符串时,它不允许我在函数中调用该变量。。。例如:
$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允许我调用字符串而不允许我调用变量?有没有一种方法可以声明变量而不是实际字符串?
删除第二个var中的引号,如下所示:
$name = "name";
$quote_name = $name;
if($value['name'] == $quote_name){...}
假设
$value['name'] = 'abcd';
$name = 'abcd';
$quot_name = " ' ".$name." ' ";//(as you entered).
现在,如果您回显$quot_name
,它将返回"abcd"(带引号),如果您回显$value['name']
,则它将返回abcd(不带引号)。
因此,$quot_name
应该是$name
(没有引号),或者您也应该向$value['name']
添加引号。