Миграция на 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'];

Я понятия не имею, как переписать эту строку.
Можете вы помочь мне?

Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Что нового в PHP 8.1?
Что нового в PHP 8.1?
Если вы все еще используете PHP 7, то эта статья для вас. В PHP 8, а именно в PHP 8.1, встроены некоторые очень востребованные функции, которые вам...
Разработка LMS на заказ для повышения эффективности работы и обучения
Разработка LMS на заказ для повышения эффективности работы и обучения
За последние годы в образовании произошла большая революция, и сегодня почти все учебные заведения делают упор на эксклюзивное управление учебным...
0
0
18
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

проблема в том, что вы пытаетесь получить доступ к логическому значению, как к массиву.

я предполагаю, что $row является результатом запроса, и этот запрос не возвращает никаких совпадающих строк, поэтому это ложь.

просто проверьте, является ли $row ложным, прежде чем получить к нему доступ.

<?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 не является ложной

Спасибо! Можете ли вы написать - как я могу это сделать, пожалуйста?

SlimRG 10.04.2022 18:00

@SlimRG я отредактировал свой ответ

ChristmasFighters 10.04.2022 18:07

Другие вопросы по теме