获取php返回中的类型;“对象”;而不是对象类型
我正在尝试使用获取php返回中的类型;“对象”;而不是对象类型,php,Php,我正在尝试使用gettype($this->object)获取在构造函数中接收的对象的类型。 但我只得到了“对象”我的构造函数:p public function __construct($object=null) { $this->object=$object; } 我发送给类的对象: $campaign = new Campaign(); $type = new Nodes\CampaignDatabaseNode($campaign); $typ
gettype($this->object)
获取在构造函数中接收的对象的类型。
但我只得到了“对象”我的构造函数:p
public function __construct($object=null)
{
$this->object=$object;
}
我发送给类的对象:
$campaign = new Campaign();
$type = new Nodes\CampaignDatabaseNode($campaign);
$type->checkType();
checkType();仅回显对象的类型您可以使用
get\u类($object)代码>
帮助你应对新情况(如果我理解正确的话)
1要获取对象的类型,请使用函数get_class()
-
2为了防止无效对象传递,您可以对参数类进行类型提示,如下所示:
public function __construct(Campaign $object=null)
{
$this->object=$object;
}
我只是想解释一下,既然其他人已经给出了正确的答案,为什么它不能像预期的那样起作用gettype()
返回变量的类型,即布尔型、整数型、双精度型、字符串型、数组型、对象型、资源型、NULL型或未知型(参见上面的gettype()
手动链接)
在您的例子中,变量$campaign
是一个对象(由gettype()
返回),该对象是类活动的一个实例(由get\u class()
返回)
gettype()
返回变量的类型,如“字符串”、“整数”、“数组”等
instanceof
检查对象是否为该指定类的实例。我尝试使用get\u类,但它返回该类的所有路径。1。我试图使用get_类,但它会返回该类的所有路径。2.它不仅适用于这种类型的对象,我在PHP中从未真正理解过这一点<代码>$campaign
是class campaign的一个实例,我明白了。然而,在我看来,$campaign
也是campaign类型,这听起来很合乎逻辑。特别是因为我们可以这样做:函数测试(int$integer,Campaign$Campaign)
。在我的函数签名中,我精确地定义了我想要的类型,而不是我想要的类的实例。通过类“type”限制参数的功能比gettype()
函数更新。PHP在对旧函数引入破坏性更改方面通常非常保守。如果您查看gettype
的文档,那么自PHP4中创建以来,他们所做的唯一修改就是对封闭资源的标识方式进行了调整(在7.2.0中)。
public function __construct(Campaign $object=null)
{
$this->object=$object;
}
gettype($obj);// Output: "object"
$obj instanceof Myclass;// Output: true (if it's an instance of that class)