在php中声明没有初始值的字段?

在php中声明没有初始值的字段?,php,oop,Php,Oop,我不想给出初始值。我想稍后使用set方法设置这些 class Duck { var int id; var set = Array(); } 知道如何声明而不出错吗?您的问题标记为PHP,但它看起来不像我所知道的任何PHP。这是正确的PHP: class Duck { var $int, $set = array(); } class Duck { private $id; private $set = array(); } 您不需要像本例中那样为$set指定初始值

我不想给出初始值。我想稍后使用set方法设置这些

class Duck {
    var int id;
    var set = Array();
}

知道如何声明而不出错吗?

您的问题标记为PHP,但它看起来不像我所知道的任何PHP。这是正确的PHP:

class Duck { var $int, $set = array(); }
class Duck {
  private $id;
  private $set = array();
}
您不需要像本例中那样为
$set
指定初始值,但这只意味着它将获得标准的默认值0、
false
array()
,等等,这取决于它的使用方式,因此我不确定您想要实现什么

通常,显式处理会更好。

更多的PHP是:

 class Duck {
      public $id;
 }

 $d = new Duck;
 $d->id = 5;

一种方法可以是类型检查

private $props = array();
static $types = array ("id" => "is_integer","name" => "is_string");

public function __set($name,$value) 
{
   if(array_key_exists($name, self::$types)) 
   {
      if(call_user_func(self::$types[$name],$value)) 
      {
        $this->props[$name] = $value;
      }
      else 
      {
        print "Type assignment error\n";
        debug_print_backtrace();
      }
   }
}

PHP使用松散类型。只能在函数或异常参数中键入提示。