当构造函数中返回了false,那么是不是当实例化这个类之后,实例化对象的值是不是也为flase?如果不是,那么在构造函数中返回的值(比如返回了true或者false),如何获取?非得另外写一个方法通过方法来获取这个返回值吗?

解决方案 »

  1.   

    function __construct($path){
    if(!$this->dirAllow($path) || empty($path)) {
    $this->validir = false;
    }else{
    $this->validir = true;
    }
    }
    private function dirAllow($path){
    if(!is_writable($path)) return false;
    $this->path = $path;
    return true;
    }
    可是为什么我实例化后调用validir来判断却也获不到值呢?
      

  2.   

    当 $this->validir = false;
    被执行时 $obj->validir 为空
      

  3.   

    解决了,非常感谢,但我就奇怪了,为什么必须用为空来判断呢?用if($obj->validir)这样判断却无效呢?
      

  4.   

      可是为什么我实例化后调用validir来判断却也获不到值呢?
    ---------------
    这样判断if( $object->validir === true ) {
       //do something that you want
    }
      

  5.   

    刚才if($obj->validir)判断无效,现在又可以了。
    谢谢楼上两位朋友,结贴了。
      

  6.   

    if($obj->validir) //false值是空, 可以这样 if(!$obj->validir)
      

  7.   

    恩,我没用===false或者empty,我就用的最后的这种(!$obj->validir)成功的,用==flase却不行,思索原因中…………
      

  8.   


    == 是模糊匹配(因为php是弱类型),  === 是全等于