当我声明函数时,我有这个代码我检查变量是否为null
使用此代码我遇到了问题:
private function addDepartementField(FormInterface $form, ?Region $region) { .... }
问题是:
解析错误:语法错误,意外'?',期待变量(T_VARIABLE)
怎么用?在php 5中,我使用的是php 5.6
谢谢高级
答案 0 :(得分:2)
PHP 5.6中不可能。它是 PHP7.1 中的新功能。这就是您收到此错误的原因。
现在可以通过在类型名称前加上问号前缀来将参数和返回值的类型声明标记为可为空。这表示除了指定的类型外,NULL还可以作为参数传递,或者分别作为值返回。 http://php.net/manual/en/migration71.new-features.php
唯一要删除?
,将$region
默认设置为空(Region $region = null
)或升级到PHP7.*
。
如果删除?
,则必须传递Region
个实例。在我看来,这是一个更好的选择:避免null (What is the best alternative to null in object oriented programming?)。