迁移到 PHP8

Migration to PHP8

我有旧 PHP 的代码。 但是当我试图通过 PHP 8.

来执行它时

第一个代码是:

PasteBin

我有错误:

Fatal error: Array and string offset access syntax with curly braces is no longer supported in **** on line 550

在线:

for ($i = 0; $i < strlen($text); $i++) $res .= ord($text{$i}) . "-";

我改成了:

for ($i = 0; $i < strlen($text); $i++) $res .= ord($text[$i]) . "-";

但是我还有一个错误:

Warning: Trying to access array offset on value of type bool in *** on line 76

在线:

$real = $row['sip'];

我不知道 - 如何重写这个字符串。
你能帮帮我吗?

问题是您正试图像访问数组一样访问布尔值。

我想 $row 是一个查询的结果,而那个查询没有 return 任何匹配的行,所以它是错误的。

在访问之前检查 $row 是否为假。

<?php
$row = false;
echo $row['test'];

这个 return 那个警告。

根据你的评论,这取决于你想做什么。

如果存在 return 值,如果不存在?

if($row){
// if it contains something, do something with it
}else{
// do something else if it doesn't
}

我不知道你的代码流程是怎样的,所以我真的帮不了你,只是检查 $row 变量是否不为 false