2015-11-11 6 views
1

im пытается получить тип объекта, который я получаю в конструкторе, используя gettype($this->object). , но им только получает "объект" мой конструктор: рполучить тип в php return «object», а не тип объекта

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

    } 

объекта, который я посылаю к классу:

$campaign = new Campaign(); 

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

CheckType(); только эхо типа объекта

ответ

0

Просто объяснить, почему gettype() не работает, как ожидалось, поскольку другие уже предоставили правильный ответ , gettype() возвращает тип переменная - i.boolean, integer, double, string, array, object, resource, NULL или неизвестный тип (см. Справочную ссылку gettype() выше).

В вашем случае переменная $campaign - это объект (возвращаемый gettype()), и этот объект является экземпляром класса Campaign (возвращается get_class()).

0

Вы можете использовать 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 
+0

Я попытался использовать get_class, но он возвращает мне весь путь к классу. – Bakalash

+0

Обновленный ответ. – Dale

0

1 Для того, чтобы получить тип объекта, используйте функцию get_class() - http://php.net/manual/en/function.get-class.php.

2 Для того, чтобы предотвратить недопустимый объект прохождение, вы можете typehint класс аргументов, как следующее:

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

1. Я попытался использовать get_class, но он возвращает мне весь путь к классу. 2. его не только для этого типа объекта. – Bakalash

Смежные вопросы