PHP中的变量比较问题

| 我正在尝试确定两个字符串是否匹配,即使我将它们打印出来,它们是相同的,它仍然表示它们不匹配。我试图将它们都转换为字符串,并且尝试使用\'=== \'而不是\'== \',但是都没有解决问题...
   if(preg_match(\"#^Availability:#\", $test)) {
    //just to note: $test = \"Availability: Lorem Ipsum\";

    $nid = 1;
    $prep = explode(\"Availability:\", $test);

    $orig = node_load($nid);

    print $prep[1];  //Prints Lorem Ipsum
    print($orig->title); //Prints Lorem Ipsum

    if((string)$orig->title == (string)$prep[1]) { 
      print \'ok\'; 
    } else { 
      print \'nope\'; //Always prints nope
    }
    ...
    
已邀请:
$ test在ѭ1后面有一个空格:也许您必须在比较之前修剪字符串。像那样
if(trim($orig->title) == trim($prep[1]))
    
我要说的是,几乎可以肯定的是在字符串的开头和/或结尾都应留有空格。 例如,您正在执行
explode(\"Availability:\",$test);
,但是您的字符串在\'Availability:\'之后的\'Lorum \'之前有一个空格,因此
$prep[1]
将等于\'Lorum Ipsum \'-前导空格。 更改您的
explode()
通话,或在比较中使用
trim()
。     

要回复问题请先登录注册