获取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)