在php中声明没有初始值的字段?
我不想给出初始值。我想稍后使用set方法设置这些在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指定初始值
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使用松散类型。只能在函数或异常参数中键入提示。