2012-01-14 60 views
0

我正在製作一個PHP腳本,其中使用了類布爾變量,但由於某種原因,當我想將其設置爲true時,它不起作用:/無法在PHP中設置變量爲true

<?php 


class TinyFram { 



    private $urlMatched; 


    public function get($url, $method){ 

     $urlR = str_replace('/', '\/', $url); 
     $urlR = '^' . $urlR . '\/?$'; 

     if (preg_match("/$urlR/i", $reqURI, $rMatch)) { 
      $this->urlMatched = true; // I SET IT TO TRUE HERE 
      $method($rMatch); 
     } 
     if(!$this->urlMatched) { 
      echo var_dump($this->urlMatched); // BUT HERE IT SHOWS AS FALSE 
      notFound($rMatch); 
     } 
    } 

} 

?> 

我做錯了什麼?謝謝!

+2

當第二個if條件通過時,你只能執行'var_dump',但是你有這樣的條件('!this-> urlMatched)'。所以我不確定你爲什麼感到驚訝! – 2012-01-14 13:12:43

+0

另外,你可能想'preg_quote'你的'$ url' ... – Wrikken 2012-01-14 13:14:11

+0

也許我的RegExp也是錯誤的。但是IDK爲什麼不把它設置爲'true',因爲'preg_match'匹配和'$ method($ rMatch);'被調用 – pmerino 2012-01-14 13:19:30

回答

2

您的preg_match不匹配,所以變量永遠不會被設置爲true。

+0

它被調用,因爲'$ method($ rMatch);'被調用 – pmerino 2012-01-14 13:16:35

1

var_dump處於檢查$ this-> urlMatched是否爲虛假值(false,0,'',null)的條件中。當然,它會顯示爲假。

btw:var_dump不需要在它前面有回聲。