Migration to PHP8



我有来自旧PHP的代码。但当我尝试用PHP 8执行它时。

第一个代码是:

粘贴在中

我有错误:

致命错误:使用大括号的数组和字符串偏移量访问语法在第550行的***中不再支持

在线:

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

我把它改成:

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

但我有另一个错误:

警告:试图访问中bool类型值的数组偏移量***在线76

在线:

$real = $row['sip'];

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

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

我假设$row是一个查询的结果,而该查询不返回任何匹配的行,所以它是false。

在访问$row之前,只需检查它是否为false。

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

这将返回该警告。

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

如果存在,返回值,如果不存在?

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

我不知道你的代码流是什么,所以我真的帮不了你,这只是检查$row变量是否不是假的

最新更新