gpt4 book ai didi

php - 类变量中的类型提示

转载 作者:IT王子 更新时间:2023-10-29 01:12:18 26 4
gpt4 key购买 nike

<?php

namespace Sandbox;

class Sandbox {

private Connectors\ISandboxConnector $connection;

public function __construct(Connectors\ISandboxConnector $conn) {
$this->connection = $conn;
}

}

?>

对于上面的代码,我收到以下错误:

Parse error: syntax error, unexpected 'Connectors' (T_STRING), expecting variable (T_VARIABLE)

当我删除类型提示和 var_dump 那个 $connection 变量时,它将是 private Sandbox\Sandbox 而不是 Sandbox\Connectors\ISandboxconnector,为什么?

最佳答案

PHP 7.3 及以下版本不支持类型化属性。你只能定义一个变量如下:

class Sandbox {
private $connection;

但是,为了帮助编辑者理解您的代码,您可以使用 @var标记以记录属性的预期类型:

class Sandbox {
/** @var Connectors\ISandboxConnector */
private $connection;

更新

PHP 7.4.0

感谢@Manuel 提到新的更新,PHP 7.4 现在根据 PHP RFC: Typed Properties 2.0 引入了类型化属性。 .

属性类型声明支持 PHP 支持的所有类型声明,voidcallable 除外。还支持任何类或接口(interface)名称、stdClass、标量和复合类型、对父对象和自身对象的引用。

class Sandbox {
public int $id;
public string $name;
private Connectors\ISandboxConnector $connection;
}

注意:留意未初始化状态和继承严格规则等副作用。

关于php - 类变量中的类型提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18956588/

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