Evaluate object to a boolean

前端 未结 6 1460
醉话见心
醉话见心 2020-12-17 08:58

Consider the following:

class MyClass
{
  private $var1 = \"apple\";
  private $var2 = \"orange\";
}

$obj = new MyClass();

if($obj) { 
  // do this
}
else          


        
6条回答
  •  [愿得一人]
    2020-12-17 09:43

    The best you can do is using __invoke:

    class MyObject {
    
        private $_state;
    
        public function __construct($state = false) {
            $this->_state = $state;
        }
    
        public function __invoke() {
            return $this->_state;
        }
    
    }
    
    $true  = new MyObject(true);
    $false = new MyObject(false);
    
    var_dump($true());   // true
    var_dump($false());  // false
    

提交回复
热议问题