首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迁移到PHP8

迁移到PHP8
EN

Stack Overflow用户
提问于 2022-04-10 15:51:28
回答 1查看 164关注 0票数 1

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

第一个守则是:

PasteBin

我犯了错误:

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

在线:

代码语言:javascript
复制
for ($i = 0; $i < strlen($text); $i++) $res .= ord($text{$i}) . "-";

我把它改成:

代码语言:javascript
复制
for ($i = 0; $i < strlen($text); $i++) $res .= ord($text[$i]) . "-";

但我又犯了一个错误:

警告:尝试访问第76行*中类型bool值的数组偏移量

在线:

代码语言:javascript
复制
$real = $row['sip'];

我不知道怎么重写这个字符串。

你能帮帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-10 15:58:51

问题是,您正在尝试访问布尔值,就像对数组所做的那样。

我认为$row是查询的结果,并且该查询不返回任何匹配的行,因此它是假的。

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

代码语言:javascript
复制
<?php
$row = false;
echo $row['test'];

这会返回警告。

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

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

代码语言:javascript
复制
if($row){
// if it contains something, do something with it
}else{
// do something else if it doesn't
}

我不知道您的代码流是什么,所以我不能真正帮助您,这只是检查一下$row变量是否是假的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71818211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档