【问题标题】:Specifing type in function definition in PHP在 PHP 中的函数定义中指定类型
【发布时间】:2015-11-27 10:23:52
【问题描述】:

我想在 PHP 中定义一个函数,其标题如下:

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

但是$node也可以为NULL

当我传递 NULL 时,我得到:

可捕获的致命错误:传递给 functionname() 的参数 1 必须是 Classname 的实例,给定 null,在 phpfile.php 的第 xx 行调用并在 ...

php 是否有可能以某种方式让我传递 NULL 或 NULLpointer?还是我必须重新定义函数,例如:

public function functionname($node)

并检查内部:

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

【问题讨论】:

标签: php function definition


【解决方案1】:

你可以定义nullable type declaration:

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

【讨论】:

  • 我确实这样做了,这似乎是正确的方法,但它令人困惑,因为我不仅有 1 个函数,我还有多个级联函数,而且我必须为 nullabel 类型声明所有。在问这个问题之前,我像这样声明了我的类的构造函数并且工作了,但我想知道为什么我必须在函数中也这样做......
  • 是的,您必须在每个方法的每个类型提示参数上指定它。我认为没有任何全局方法可以覆盖它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-20
  • 2011-12-13
  • 2013-02-04
  • 2016-10-20
  • 2020-01-25
  • 2020-05-19
相关资源
最近更新 更多