我知道可以声明函数参数、函数返回和类属性的类型。(如下所示)
class HasString {
private string $value;
public function getValue() : string
{
return $value;
}
public function setAttribute(string $arg0)
{
$this->value = $arg0;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,以下内容将不起作用。
// Tested in PHP 7.4.1
string $localVar = "value"; // Parse error: syntax error, unexpected '$localVar' (T_VARIABLE) in php shell code on line 1
Run Code Online (Sandbox Code Playgroud)
php 是否有可用于显式声明局部变量类型的语法?
这对于捕获变量接收意外值的错误非常有用,并有助于 IDE 在处理混合或未指定的函数返回时识别变量类型。
小智 2
我认为仅对变量进行类型转换有点冒险,因为可能会发生意外行为。
如果将 int 转换为字符串,这在很多情况下可能有效,但也可能导致不那么明显的错误。
您正在寻找的是 PHPDoc 注释,因为不幸的是,无法对局部变量上的类属性执行您所做的操作。您可以在这里了解更多信息https://www.phpdoc.org/和https://phpstan.org/writing-php-code/phpdocs-basics
但如果您使用任何框架,它已经附带了这些框架。或者您的 IDE 也只支持它们,例如 Phpstorm 或 Eclipse。
代码示例
public function foo(): void {
/* @var string */
$localVar;
// ... do other stuff
}
Run Code Online (Sandbox Code Playgroud)