gpt4 book ai didi

php - 在 PHP 中声明变量类型?

转载 作者:IT王子 更新时间:2023-10-29 00:50:55 29 4
gpt4 key购买 nike

I was trying to get my Netbeans to autocomplete with PHP ,我了解到这段代码在 PHP 中是有效的:

function blah(Bur $bur) {}

几个问题:

  1. 这实际上对我可以传递给 blah 方法的变量类型有任何限制吗?
  2. 如果这只是为了帮助 IDE,我可以。 如果我不在函数中,如何在 PHP 中声明变量的类型?

最佳答案

此类型提示仅适用于验证函数参数;您不能声明 PHP 变量必须始终是特定类型。这意味着在您的示例中,调用“blah”时 $bur 必须是 Bur 类型,但是 $bur 可以在函数内重新分配给非 Bur 值。

类型提示仅适用于类名或接口(interface)名;例如,您不能声明参数必须是整数。

与 Java 不同的 PHP 类型提示的一个令人讨厌的方面是不允许使用 NULL 值。因此,如果您想要传递 NULL 而不是对象的选项,则必须删除类型提示并在函数顶部执行如下操作:

assert('$bur === NULL || $bur instanceof Bur');

编辑:最后一段自 PHP 5.1 起不再适用;您现在可以使用 NULL 作为默认值,甚至可以使用类型提示。

编辑:您还可以安装 SPL Type Handling扩展,它为您提供字符串、整数、 float 、 bool 值和枚举的包装类型。

编辑:自 PHP 5.1 起您还可以使用“array”,自 PHP 5.4 起也可以使用“callable”。

编辑:自 PHP 7.0 起,您还可以使用“string”、“int”、“float”和“bool”。

编辑: 从 PHP 7.4 开始,您可以将类/接口(interface)/特征的成员变量声明为特定类型,如 public int $a;,并且以这种方式声明的变量不能分配给另一种类型的值。您也可以使用 union types例如从 PHP 8.0 开始的 string|int,从 PHP 8.1 开始,您可以在联合类型中使用类。

https://www.php.net/manual/en/language.types.declarations.php

关于php - 在 PHP 中声明变量类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/390932/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com