В данном посте вы найдете самые частые ошибки PHP и их решения.
Неподходящая версия PHP
Не совсем ошибка PHP, но мы находимся на форуме по созданию серверов в майнкрафте, так что ошибка эта частая у новичков.
Эта ошибка означает, что ваше ядро не поддерживает текущую установленную версию бинарника.
Пример: you must use PHP >= 7.2
Перевод: вы должны использовать PHP версии больше либо равно 7.2
Решение: установите бинарник версии 7.2 или выше
Инструкция по установке бинарника на хостинге 24серв есть в этом топике:
Устанавливаем ядро
Устаревшие функции и конструкции (Deprecated)
Ошибки использования устаревших конструкций. Показываются для того, чтобы получать предупреждения о коде, который не будет работать в следующих версиях PHP.
Пример: Deprecated: Array and string offset access syntax with curly braces is deprecated (использовал {} для вывода элемента массива на PHP версии 7.4. Нужно использовать [])
Решение: найдите решение по запросу в гугле
Неопределенная переменная (undefined variable)
Это значит, что переменная неопределенна.
Пример:
<?php
var_dump($variable);
Получим ошибку: Warning: Undefined variable $variable
Решение:
Определим переменную.
<?php
$variable = 'daddy';
var_dump($variable);
Получим вывод в терминале:
string(5) "daddy"
Пример с анонимной функцией:
<?php
$a = 'daddy';
$func = function() {
var_dump($a);
};
$func();
Получим ошибку: Warning: Undefined variable $a
Сделаем переменную видимой для тела анонимной функции, добавив use ($a):
<?php
$a = 'daddy';
$func = function() use ($a) {
var_dump($a);
};
$func();
Получим вывод в терминале:
string(5) "daddy"
Неопределенный метод
Эта ошибка означает, что в вашем коде нет того или иного метода.
Пример:
<?php
userFunc();
Получим ошибку: Fatal error: Uncaught Error: Call to undefined function userFunc()
Определим метод.
<?php
function userFunc() : void{
var_dump('daddy', 'sexy');
}
userFunc();
Получим вывод в терминале:
string(5) "daddy"
string(4) "sexy"
Синтаксические ошибки
Эта ошибка означает, что вы допустили ошибку в синтаксисе кода.
Каждая открытая { должна быть закрыта }, каждая открытая ( должна быть закрыта ),
каждый оператор PHP должен быть закрыт точкой с запятой ;
Это вам поможет: PHP: Основы синтаксиса - Manual
Невозможно переопределить метод
Эта ошибка означает, что метод, который вы пытаетесь определить, уже определен.
Пример:
<?php
function userFunc() : void{
var_dump('daddy', 'sexy');
}
function userFunc() : void{
var_dump('daddy', 'sexy');
}
Получим ошибку: Fatal error: Cannot redeclare userFunc()
Недостаточное количество параметров
Эта ошибка вызвана с меньшим или большим количеством фактических параметров по сравнению с тем, на обработку которого функция рассчитана. Если задано больше параметров, чем требуется, то никаких ошибок не возникает, но если используется меньше параметров по сравнению с ожидаемым, то возникает ошибка.
Пример:
<?php
function userFunc(string $message) : void{
var_dump($message);
}
userFunc();
Получим ошибку: Fatal error: Uncaught ArgumentCountError: Too few arguments to function userFunc(), 0 passed in /home/user/scripts/code.php on line 8 and exactly 1 expected in /home/user/scripts/code.php:3
Передадим аргумент.
<?php
function userFunc(string $message) : void{
var_dump($message);
}
userFunc('daddy');
Получим вывод в терминале:
string(5) "daddy"
Ну вот и всё, вроде все распространенные ошибки я описал.
Если что-то забыл или допустил ошибку, пишите комментарии.