PHP 字符串 != 变量 = 'string'



不知道如何命名这个问题,但我正在寻找反馈,解释为什么当我将变量设置为某个字符串时,它不允许我在函数中调用该变量。。。例如:

$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']添加引号。

最新更新