Самые распространенные ошибки и их решения

В данном посте вы найдете самые частые ошибки 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"

Ну вот и всё, вроде все распространенные ошибки я описал.

Если что-то забыл или допустил ошибку, пишите комментарии.

Эх увидел бы я это года дава назад, было бы топово

2 года назад я сам был овощем

2 лайка

зачем? ошибка и так указывает на проблему
в крайнем случае любая из этих ошибок - первая страница гугла

Жиза

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

А так, вы просто можете кидать этот топик как решение, в случае, если опять высрут пост с дефолт ошибкой

А кто то из “кодеров” умеет ошибку копировать и в гугл вставлять?)

проект на старой php, совершенно ошибка пхп

прямо в ошибке и написано решение

снова же в ошибке написано решение

и снова для новичков слово “метод” нелегко, из-за незнания ООП

объявление функции - снова ошибка рассказала нам об всем

все остальное та же х которая просто выглядит как клоунада

ну для тебя все понятно, а вот супер кодеры высирают посты с такими ошибками

и этот же пост не имеет никакого смысла

похрен, он никак не мешает и находится в “беседке”

прост мне стало скушна и я такой а че бы не написать кринжовенький пост с ошибками

это не метод, если докопаться

1 лайк

да и

ну зачеееем. я думал никто не заметит

люблю, могу и хочу:)

прости, святой тинус. Больше не буду, отвечаю

эьу тему нужно делать как Вики тему

чтобы потом можно было редактироваиь

Как жаль, шо у меня нет актив юзера