2012-01-14 3 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)'조건을 갖습니다. 그래서 나는 왜 당신이 놀랐는지 잘 모르겠다. –

+0

또한'$ url'을'preg_quote '하고 싶을 수도 있습니다 ... – Wrikken

+0

어쩌면 저의 RegExp가 잘못되었을 수도 있습니다. 그러나 IDK는'preg_match'가 일치하고'$ method ($ rMatch);'가 호출되기 때문에'true'로 설정하지 않습니다 – pmerino

답변

2

preg_match가 일치하지 않으므로 변수가 true로 설정되지 않습니다.

+0

'$ method ($ rMatch);'가 호출되기 때문에 호출됩니다 – pmerino

1

var_dump은 $ this-> urlMatched가 거짓 값 (false, 0, '', null)인지 확인하는 조건부입니다. 물론 그것은 거짓으로 나타날 것입니다.

btw : var_dump 앞에 에코가있을 필요가 없습니다.

관련 문제