Dan*_*ark 47 php variable-types
我试图让我的Netbeans用PHP自动完成,我了解到这段代码在PHP中是有效的:
function blah(Bur $bur) {}
Run Code Online (Sandbox Code Playgroud)
几个问题:
JW.*_*JW. 71
这种类型提示仅适用于验证函数参数; 您不能声明PHP变量必须始终属于某种类型.这意味着在您的示例中,$ bur在调用"blah"时必须是Bur类型,但$ bur可以重新分配给函数内部的非Bur值.
类型提示仅适用于类或接口名称; 例如,你不能声明一个参数必须是一个整数.
PHP的类型提示的一个令人讨厌的方面,与Java不同,是不允许使用NULL值.因此,如果您想要传递NULL而不是对象的选项,则必须删除类型提示并在函数顶部执行类似的操作:
assert('$bur === NULL || $bur instanceof Bur');
Run Code Online (Sandbox Code Playgroud)
编辑:自PHP 5.1起,最后一段不适用; 您现在可以使用NULL作为默认值,即使使用类型提示也是如此.
编辑:您还可以安装SPL类型处理扩展,它为您提供字符串,整数,浮点数,布尔值和枚举的包装类型.
编辑:你也可以使用自PHP 5.1以来的"数组",以及自PHP 5.4以来的"可调用".
编辑:从PHP 7.0开始,您还可以使用"string","int","float"和"bool".
Jim*_*ran 29
/**
* @var string
*/
public $variable = "Blah";
Run Code Online (Sandbox Code Playgroud)
它被称为类型提示,与PHP 5一起添加.如果你来自Java这样的语言,它可能不是你所期望的.如果您没有传入预期的类型,它确实会导致抛出错误.但是你不能输入提示原语(no int $ bur).
小智 6
#2 :( ...)如果我不在函数中,如何在PHP中声明变量的类型?
我最近在PHP4&5中听说过" settype() "和" gettype() "
你可以随时随地强制变量类型
来自PHP.net:
bool settype(mixed&$ var,string $ type)
参数
var:要转换的变量.type:类型的可能值为:
[:D首次访问,第一次评论......]