php - 为什么将访问修饰符传递给 PHP 中的方法会返回解析错误(迭代器)
问题描述
新手在这里。我一直在尝试在我的方法(第 3 行)中传递各种访问修饰符(公共、私有和受保护)。不幸的是,运行代码时出现 Parse 错误。请看下面的代码:
class MappedIteratorDemo implements Iterator
{
public function __construct(private array $items = []){}
public function current()
{
// TODO: Implement current() method.
return current($this->items);
}
public function next()
{
// TODO: Implement next() method.
return next($this->items);
}
public function key()
{
// TODO: Implement key() method.
return key($this->items);
}
public function valid()
{
// TODO: Implement valid() method.
return key($this->items) !== null;
}
public function rewind()
{
// TODO: Implement rewind() method.
return reset($this->items);
}
}
$mappedArray = [
'name' => 'Ola',
'location' => 'Essen, Germany',
'role' => 'Software Developer',
];
$mappedIterDemo = new MappedIteratorDemo($mappedArray);
foreach ($mappedIterDemo as $item =>$value)
{
print "$item : $value" . PHP_EOL;
}
及其对应的错误
PHP Parse error: syntax error, unexpected 'private' (T_PRIVATE), expecting variable (T_
VARIABLE) in ...
我的 PHP 版本是 PHP: 8.0,在 PHPStorm IDE 上运行。
我将不胜感激有关可能解决方案的任何提示/指导。
谢谢
解决方案
谢谢你们的评论。
所以,我最初认为在 IDE 底部更改 PHP 版本会很神奇,但我不知道我还必须在首选项/设置下更改解释器版本。
我意识到我的 PHP CLI 解释器的版本是7.4.23。我将它更新到8.0版,它运行得非常好。
这也可以帮助那些在未来可能面临同样挑战的人。
推荐阅读
- swift - Swift:如何将 readLine() 输入“[-5,20,8...]”转换为 Int 数组
- powerbi-desktop - Power BI - 反左连接
- php - 如何使两个在 PHP 中协同工作的 isset 函数?
- electron - 用电子锻造窗口打包电子应用程序后找不到节点模块
- google-chrome - 我正在尝试在 python 文件中使用 chromedriver 从 chrome 浏览器运行下载数据
- node.js - 如何从节点服务器端使用 redux-thunk?
- java - CompletableFuture 和 Thread.currentThread().interrupt()
- javascript - Vue路由器推送不更新nuxt中的查询
- react-native - 当 textinput 为空时,使用 onPress 更改按钮颜色
- ruby - 如何在哈希数组中找到哈希的最大值