我试图使用gettype($this->object)
获取我在构造函数中收到的对象的类型。
但我只得到“对象”我的构造函数:p
public function __construct($object=null)
{
$this->object=$object;
}
我发送给班级的对象:
$campaign = new Campaign();
$type = new Nodes\CampaignDatabaseNode($campaign);
$type->checkType();
checkType();只回显对象的类型
答案 0 :(得分:8)
只是解释为什么gettype()没有按预期工作,因为其他人已经提供了正确的答案。 gettype()
返回变量的类型 - 即boolean,integer,double,string,array,object,resource,NULL或unknown类型(参见上面的gettype()
手动链接)
在您的情况下,变量$campaign
是一个对象(由gettype()
返回),该对象是Campaign类的实例(由get_class()
返回)。
答案 1 :(得分:3)
您可以使用get_class($object);
帮助解决您的新情况(如果我能够理解的话)
<?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;
}