获取php中的类型返回“对象”而不是对象类型

时间:2015-11-11 13:18:38

标签: php

我试图使用gettype($this->object)获取我在构造函数中收到的对象的类型。 但我只得到“对象”我的构造函数:p

public function __construct($object=null)
    {
        $this->object=$object;

    }

我发送给班级的对象:

$campaign = new Campaign();

$type = new Nodes\CampaignDatabaseNode($campaign);
$type->checkType();

checkType();只回显对象的类型

4 个答案:

答案 0 :(得分:8)

只是解释为什么gettype()没有按预期工作,因为其他人已经提供了正确的答案。 gettype()返回变量的类型 - 即boolean,integer,double,string,array,object,resource,NULL或unknown类型(参见上面的gettype()手动链接)

在您的情况下,变量$campaign是一个对象(由gettype()返回),该对象是Campaign类的实例(由get_class()返回)。

答案 1 :(得分:3)

您可以使用get_class($object);

http://www.php.net/get_class

帮助解决您的新情况(如果我能够理解的话)

<?php

namespace Ridiculous\Test\Whatever;

class example {}

$example = new example();

echo get_class($example) . '<br>';
echo basename(get_class($example)); // this may be what you're after

答案 2 :(得分:1)

gettype($obj);// Output: "object"
$obj instanceof Myclass;// Output: true (if it's an instance of that class)

gettype()返回变量的类型,例如“字符串”,“整数”,“数组”等。

instanceof检查对象是否是该指定类的实例。

答案 3 :(得分:0)

1要获取对象的类型,请使用函数get_class() - http://php.net/manual/en/function.get-class.php

2为了防止无效的对象传递,您可以键入提示参数类,如下所示:

public function __construct(Campaign $object=null)
{
    $this->object=$object;
}