2012-01-14 7 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

2番目の 'if'条件付きでパスするときだけ' var_dump'を行いますが、その条件は '(!$ this-> urlMatched)'です。だから私はなぜあなたが驚いているのか分かりません! –

+0

また、 '$ url'を' preg_quote'したいかもしれません... – Wrikken

+0

おそらく私のRegExpも間違っています。しかし、 'preg_match'がマッチし、' $ method($ rMatch); 'が呼び出されてIDKがなぜ' true'に設定されているのかをIDKは – pmerino

答えて

2

あなたのpreg_matchが一致していないので、変数は決してtrueに設定されません。

+0

と呼びます。 '$ method($ rMatch);' – pmerino

1

var_dumpは、$ this-> urlMatchedが偽値(false、0、 ''、null)かどうかをチェックする条件にあります。もちろんそれは偽と表示されます。

btw:var_dumpは、その前にエコーを持つ必要はありません。

関連する問題