Справка - Что означает эта ошибка в PHP?

Если вы посмотрите на спецификацию HTML5 для разработчиков :

http://developers.whatwg.org/forms.html#the-fieldset- Элемент

Элемент fieldset представляет собой набор элементов управления формой, которые необязательно сгруппированы под общим именем.

blockquote>

(есть если вы следуете ссылке)

В сочетании с элементом legend он позволяет вам легко сделать это, что трудно воссоздать без использования fieldset / legend:

[/g4]

1050
задан 70 revs, 28 users 35% 21 June 2019 в 23:34
поделиться

6 ответов

Примечание: преобразование массива в строку

Это просто происходит, если вы пытаетесь обработать массив как строку:

$arr = array('foo', 'bar');

echo $arr;  // Notice: Array to string conversion
$str = 'Something, ' . $arr;  // Notice: Array to string conversion

Массив не может быть просто echo 'd или сцепленным со строкой, потому что результат не очень хорошо определен. PHP будет использовать строку «Array» вместо массива и инициировать уведомление, чтобы указать, что это, вероятно, не то, что было задумано, и что вы должны проверять свой код здесь. Вы, вероятно, хотите что-то вроде этого:

echo $arr[0];  // displays foo
$str = 'Something ' . join(', ', $arr); //displays Something, foo, bar

Или зациклите массив:

foreach($arr as $key => $value) {
    echo "array $key = $value";
    // displays first: array 0 = foo
    // displays next:  array 1 = bar
}

Если это уведомление появляется где-то, чего вы не ожидаете, это означает, что переменная, которую вы считали строка на самом деле является массивом. Это означает, что в вашем коде есть ошибка, из-за которой эта переменная становится массивом вместо ожидаемой строки.

16
ответ дан 3 revs, 3 users 70% 21 June 2019 в 23:34
поделиться

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный T_PAAMAYIM_NEKUDOTAYIM

Оператор разрешения контекста также называется «Paamayim Nekudotayim» с иврита פעמיים נקודתיים. что означает «двойное двоеточие» или «двойная точка дважды».

Эта ошибка обычно возникает, если вы случайно в коде добавили ::.

Смежные вопросы:

Документация:

41
ответ дан 6 revs, 4 users 75% 21 June 2019 в 23:34
поделиться

Примечание: использование неопределенной константы XXX - предполагается «XXX»

или, в PHP 7.2 или более поздней версии:

Предупреждение: использование неопределенной константы XXX - предполагается «XXX» (это будет выдает ошибку в будущей версии PHP)

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

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

Например:

// Wrong
echo $array[key];

// Right
echo $array['key'];

Другой распространенной причиной является отсутствие знака $ (доллар) перед именем переменной:

// Wrong
echo varName;

// Right
echo $varName;

Или, возможно, вы ошиблись некоторыми другая константа или ключевое слово:

// Wrong
$foo = fasle;

// Right
$foo = false;

Это также может быть признаком отсутствия необходимого расширения или библиотеки PHP при попытке доступа к константе, определенной этой библиотекой.

Смежные вопросы:

41
ответ дан 12 revs, 7 users 72% 21 June 2019 в 23:34
поделиться

HTTP-ошибка 500 - внутренняя ошибка сервера

HTTP-код состояния 500 и типичное предупреждение Apache или браузера являются очень широким сообщением. Это не настоящая ошибка. Чтобы выяснить, является ли это неправильной конфигурацией веб-сервера (.htaccess) или фатальной ошибкой PHP, вам нужно взглянуть на error.log .

Обычно веб-серверы error.log можно найти в:

  • /var/log/apache2 на серверах Linux, часто используемых для локальных и виртуальных хостов.
  • /var/www/_user12345_/logs или аналогичный в планах общего хостинга. Обычно есть каталог logs/ рядом с каждой папкой htdocs/.
  • C:\xampp\apache\logs\error.log для WAMP / XAMPP дистрибутивов Apache + PHP.
  • В качестве альтернативы просто используйте функцию поиска файлов, чтобы найти что-нибудь под названием «error.log».
    Или загляните в свой Apache httpd.conf и его директиву ErrorLog.
  • /var/log/nginx/nginx_error.log для NGINX .
  • C:\inetpub\logs\LogFiles для IIS .

Это текстовый файл. Найдите запись, наиболее точно соответствующую времени ошибки, и используйте значительную часть сообщения об ошибке (от «Ошибка PHP:…» до «в строке…») для дальнейшего поиска в Google.

[Mon 22:10] [:error] [pid 12345] [client 127.0.0.1] FastCGI: server "/fcgi/p73" stderr: PHP message: PHP Error: Unfiltered input variable

HTTP-ошибка 500 - внутренняя ошибка сервера

HTTP-код состояния 500 и типичное предупреждение Apache или браузера являются очень широким сообщением. Это не настоящая ошибка. Чтобы выяснить, является ли это неправильной конфигурацией веб-сервера ([110]) или фатальной ошибкой PHP, вам нужно взглянуть на [111] .

Обычно веб-серверы [112] можно найти в:

  • [113] на серверах Linux, часто используемых для локальных и виртуальных хостов.
  • [114] или аналогичный в планах общего хостинга. Обычно есть каталог [115] рядом с каждой папкой [116].
  • [117] для WAMP / XAMPP дистрибутивов Apache + PHP.
  • В качестве альтернативы просто используйте функцию поиска файлов, чтобы найти что-нибудь под названием «error.log».
    Или загляните в свой Apache [118] и его директиву [119].
  • [1110] для NGINX .
  • [1111] для IIS .

Это текстовый файл. Найдите запись, наиболее точно соответствующую времени ошибки, и используйте значительную часть сообщения об ошибке (от «Ошибка PHP:…» до «в строке…») для дальнейшего поиска в Google.

[1112] [1113] [1114]

Для установок FPM вы часто просто видите здесь фатальные ошибки PHP. Принимая во внимание, что более старые конфигурации mod_php (общий хостинг) часто смешиваются в предупреждениях и уведомлениях (которые обычно также заслуживают изучения).

Если вы не настроены на использование системы или механизма ведения журнала Apache, вы также можете посмотреть PHP error.log . Обычно проще оставить значения по умолчанию и просто включить error_display + error_reporting, чтобы выявить конкретную ошибку. В конце концов, HTTP-страница «все 500» - это всего лишь разновидность белого экрана смерти PHP .

См. Также:

JSON['pokestop_lng'] in filyfile.php on line 845

Для установок FPM вы часто просто видите здесь фатальные ошибки PHP. Принимая во внимание, что более старые конфигурации mod_php (общий хостинг) часто смешиваются в предупреждениях и уведомлениях (которые обычно также заслуживают изучения).

Если вы не настроены на использование системы или механизма ведения журнала Apache, вы также можете посмотреть PHP error.log . Обычно проще оставить значения по умолчанию и просто включить error_display + error_reporting, чтобы выявить конкретную ошибку. В конце концов, HTTP-страница «все 500» - это всего лишь разновидность белого экрана смерти PHP .

См. Также:

5
ответ дан mario 21 June 2019 в 23:34
поделиться

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления Undefined Index будет ( демо )

$data = array('foo' => '42', 'bar');
echo $data['spinach'];
echo $data[1];

Оба spinach и 1 не существуют в массиве, вызывая срабатывание E_NOTICE .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя array_key_exists или isset :

$data = array('foo' => '42', 'bar');
if (array_key_exists('spinach', $data)) {
    echo $data['spinach'];
}
else {
    echo 'No key spinach in the array';
}

Если у вас есть код вроде:

<?php echo 

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления Undefined Index будет ( демо )

[110]

Оба spinach и 1 не существуют в массиве, вызывая срабатывание E_NOTICE .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя array_key_exists или isset :

[111]

Если у вас есть код вроде:

[112]

, тогда

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления [114] будет ( демо )

[110]

Оба [115] и [116] не существуют в массиве, вызывая срабатывание [117] .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя [118] или [119] :

[111]

Если у вас есть код вроде:

[112]

, тогда [1110] не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

if (

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления Undefined Index будет ( демо )

[110]

Оба spinach и 1 не существуют в массиве, вызывая срабатывание E_NOTICE .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя array_key_exists или isset :

[111]

Если у вас есть код вроде:

[112]

, тогда

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления [114] будет ( демо )

[110]

Оба [115] и [116] не существуют в массиве, вызывая срабатывание [117] .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя [118] или [119] :

[111]

Если у вас есть код вроде:

[112]

, тогда [1110] не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

POST['message']
не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

POST) .. // if the

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления Undefined Index будет ( демо )

[110]

Оба spinach и 1 не существуют в массиве, вызывая срабатывание E_NOTICE .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя array_key_exists или isset :

[111]

Если у вас есть код вроде:

[112]

, тогда

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления [114] будет ( демо )

[110]

Оба [115] и [116] не существуют в массиве, вызывая срабатывание [117] .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя [118] или [119] :

[111]

Если у вас есть код вроде:

[112]

, тогда [1110] не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

POST['message']
не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

POST array is not empty // or if (

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления Undefined Index будет ( демо )

[110]

Оба spinach и 1 не существуют в массиве, вызывая срабатывание E_NOTICE .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя array_key_exists или isset :

[111]

Если у вас есть код вроде:

[112]

, тогда

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления [114] будет ( демо )

[110]

Оба [115] и [116] не существуют в массиве, вызывая срабатывание [117] .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя [118] или [119] :

[111]

Если у вас есть код вроде:

[112]

, тогда [1110] не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

POST['message']
не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

SERVER['REQUEST_METHOD'] == 'POST') .. // page was requested with POST

Связанные вопросы:

POST['message']
не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

POST['message']; ?> <form method="post" action=""> <input type="text" name="message"> ...

, тогда

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления [114] будет ( демо )

[110]

Оба [115] и [116] не существуют в массиве, вызывая срабатывание [117] .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя [118] или [119] :

[111]

Если у вас есть код вроде:

[112]

, тогда [1110] не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

if (

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления Undefined Index будет ( демо )

[110]

Оба spinach и 1 не существуют в массиве, вызывая срабатывание E_NOTICE .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя array_key_exists или isset :

[111]

Если у вас есть код вроде:

[112]

, тогда

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления [114] будет ( демо )

[110]

Оба [115] и [116] не существуют в массиве, вызывая срабатывание [117] .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя [118] или [119] :

[111]

Если у вас есть код вроде:

[112]

, тогда [1110] не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

POST['message']
не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

POST) .. // if the

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления Undefined Index будет ( демо )

[110]

Оба spinach и 1 не существуют в массиве, вызывая срабатывание E_NOTICE .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя array_key_exists или isset :

[111]

Если у вас есть код вроде:

[112]

, тогда

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления [114] будет ( демо )

[110]

Оба [115] и [116] не существуют в массиве, вызывая срабатывание [117] .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя [118] или [119] :

[111]

Если у вас есть код вроде:

[112]

, тогда [1110] не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

POST['message']
не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

POST array is not empty // or if (

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления Undefined Index будет ( демо )

[110]

Оба spinach и 1 не существуют в массиве, вызывая срабатывание E_NOTICE .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя array_key_exists или isset :

[111]

Если у вас есть код вроде:

[112]

, тогда

Примечание: неопределенный индекс

Происходит при попытке доступа к массиву по ключу, который не существует в массиве.

Типичным примером уведомления [114] будет ( демо )

[110]

Оба [115] и [116] не существуют в массиве, вызывая срабатывание [117] .

Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя [118] или [119] :

[111]

Если у вас есть код вроде:

[112]

, тогда [1110] не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

POST['message']
не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

SERVER['REQUEST_METHOD'] == 'POST') .. // page was requested with POST

Связанные вопросы:

POST['message']
не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью:

[113]

Связанные вопросы:

98
ответ дан 11 revs, 7 users 57% 21 June 2019 в 23:34
поделиться

Удержанный от использования: синтаксис доступа смещения Массива и строки с фигурными скобками удерживается от использования

, к Строковым смещениям и элементам массива могли получить доступ фигурные скобки {} до PHP 7.4.0:

$string = 'abc';
echo $string{0};  // a

$array = [1, 2, 3];
echo $array{0};  // 1

Это было удержано от использования начиная с PHP 7.4.0 и генерирует предупреждение:

Устаревший: синтаксис доступа смещения Массива и строки с фигурными скобками удерживается от использования

, необходимо использовать квадратные скобки [] для доступа к строковым смещениям и элементам массива:

$string = 'abc';
echo $string[0];  // a

$array = [1, 2, 3];
echo $array[0];  // 1

RFC для этого изменения ссылки на сценарий PHP , который пытается зафиксировать это механически.

2
ответ дан 19 December 2019 в 20:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: