访问器魔术方法在 PHP 8 中不起作用

问题描述 投票:0回答:1

我最近将 Ubuntu 从 20.04 LTS 升级到 22.04 LTS。我注意到 PHP 已升级到以下版本:

PHP 8.1.2-1ubuntu2.13 (cli) (built: Jun 28 2023 14:01:49) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.13, Copyright (c), by Zend Technologies

我的 PHP 应用程序在这部分停止工作:

public function __set($name, $value)
{
  $this->$name = $value;
}

public function DisplayMenu($buttons)
{
  echo "\t\t\t<nav>\n\t\t\t\t<ul>\n";
  while (list($name, $url) = each($buttons)) {
    $this->DisplayButton($name, $url);
  }
  echo "\t\t\t\t</ul>\n\t\t\t</nav>\n";
}

从 PHP 7.x 升级到 8.x 后,访问器魔术方法停止工作。在 PHP 8.x 中使用等效项的新方法是什么?谢谢你。

php getter-setter setter php-8
1个回答
1
投票

这不是访问器。问题是

each
函数在 PHP 8 中被删除。您需要切换到
foreach
循环。

© www.soinside.com 2019 - 2024. All rights reserved.