PHP中的变量比较问题

PHP中的变量比较问题,php,comparison-operators,Php,Comparison Operators,我试图确定两个字符串是否匹配,即使当我打印出来时,它们是相同的,它仍然表示它们不匹配。我尝试将它们都转换为字符串,并尝试使用“==”而不是“==”,但都没有解决问题 if(preg_match("#^Availability:#", $test)) { //just to note: $test = "Availability: Lorem Ipsum"; $nid = 1; $prep = explode("Availability:", $test);

我试图确定两个字符串是否匹配,即使当我打印出来时,它们是相同的,它仍然表示它们不匹配。我尝试将它们都转换为字符串,并尝试使用“==”而不是“==”,但都没有解决问题

   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在
可用性
之后有一个空格:也许您必须在编写之前修剪字符串。那样

if(trim($orig->title) == trim($prep[1]))

$test在
可用性
之后有一个空格:也许您必须在编写之前修剪字符串。那样

if(trim($orig->title) == trim($prep[1]))

我想说,几乎可以肯定字符串的开头和/或结尾都有空格

例如,您正在执行
explode(“可用性:”,$test),但您的字符串在“Availability:”之后、在“Lorum”之前有一个空格,因此
$prep[1]
将等于“Lorum Ipsum”-带有前导空格


要么更改
explode()
调用,要么在比较中使用
trim()

我几乎可以肯定字符串的开头和/或结尾会有空格

例如,您正在执行
explode(“可用性:”,$test),但您的字符串在“Availability:”之后、在“Lorum”之前有一个空格,因此
$prep[1]
将等于“Lorum Ipsum”-带有前导空格


更改
explode()
调用,或者在比较中使用
trim()

可能是换行符/空白问题。您能否对两个值执行
trim()
,然后查看它们是否匹配?可能是换行符/空白问题。你能对两个值进行
trim()
,看看它们是否匹配吗?是的,就是这样。。。非常感谢。(我不能再接受七分钟,但我会的!)是的,就是这样。。。非常感谢。(我不能再接受七分钟,但我会的!)