PHP中的变量比较问题

时间:2011-05-18 15:24:55

标签: php comparison-operators

我正在尝试确定两个字符串是否匹配,即使我将它们打印出来,它们也是相同的,但它仍然表示它们不匹配。我试着将它们都作为字符串投射,我尝试使用'==='而不是'==',但都没有解决问题......

   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
    }
    ...

2 个答案:

答案 0 :(得分:3)

$ test在Availability之后有一个空格:也许你必须在编译前修剪字符串。像那样

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

答案 1 :(得分:0)

我会说你的琴弦的开头和/或结尾几乎可以肯定是空格。

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

更改explode()来电,或在比较中使用trim()