2015-11-27 3 views
0

Я хочу определить функцию в PHP с заголовком, как это:типа задав в определении функции в PHP

public function functionname(Classname $node) 
{ ... } 

но $ узел также может быть NULL

, когда я прохожу NULL я получаю:

Catchable фатальная ошибка: Аргумент 1 передается FunctionName() должен быть экземпляром Classname, нуль дал, называемый в phpfile.php на линии хх и определены в ...

можно ли каким-то образом, что PHP также позволяет мне передавать NULL или NULLpointer? или же я должен переопределить функции, как:

public function functionname($node) 

и проверить внутри с:

if ($node != NULL) 
if (typeof($node)!="Classname") 
    { throw error } 
+2

Вы можете добавить значение по умолчанию 'общественная функция functionname (Classname $ node = null) ' –

ответ

-1

Вы можете определить nullable type declaration:

public function functionname(Classname $node = null){} 
+0

Я сделал именно это, кажется, правильный путь, но его запутанная причина. У меня есть не только 1 функция. У меня есть несколько каскадных функций, и мне нужно обнулить тип объявляет все. Прежде чем задать этот вопрос, я объявил конструктор моего класса таким образом и работал, но я задавался вопросом, почему я должен это делать и в функциях ... – Noooooob

+0

Да, вы должны указать его на каждый аргумент, намеченный каждым методом. Я не думаю, что есть глобальный способ переопределить это. – tmt

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