Если вы посмотрите на спецификацию HTML5 для разработчиков :
http://developers.whatwg.org/forms.html#the-fieldset- Элемент
Элемент
blockquote>fieldset
представляет собой набор элементов управления формой, которые необязательно сгруппированы под общим именем.(есть если вы следуете ссылке)
В сочетании с элементом
legend
он позволяет вам легко сделать это, что трудно воссоздать без использованияfieldset
/legend
:[/g4]
Это просто происходит, если вы пытаетесь обработать массив как строку:
$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
}
Если это уведомление появляется где-то, чего вы не ожидаете, это означает, что переменная, которую вы считали строка на самом деле является массивом. Это означает, что в вашем коде есть ошибка, из-за которой эта переменная становится массивом вместо ожидаемой строки.
Оператор разрешения контекста также называется «Paamayim Nekudotayim» с иврита פעמיים נקודתיים. что означает «двойное двоеточие» или «двойная точка дважды».
Эта ошибка обычно возникает, если вы случайно в коде добавили ::
.
Смежные вопросы:
Документация:
или, в PHP 7.2 или более поздней версии:
Это уведомление возникает, когда токен используется в коде и выглядит как константа, но константа с таким именем не определена.
Одной из наиболее распространенных причин этого уведомления является неспособность заключить в кавычки строку, используемую в качестве ключа ассоциативного массива.
Например:
// Wrong
echo $array[key];
// Right
echo $array['key'];
Другой распространенной причиной является отсутствие знака $
(доллар) перед именем переменной:
// Wrong
echo varName;
// Right
echo $varName;
Или, возможно, вы ошиблись некоторыми другая константа или ключевое слово:
// Wrong
$foo = fasle;
// Right
$foo = false;
Это также может быть признаком отсутствия необходимого расширения или библиотеки PHP при попытке доступа к константе, определенной этой библиотекой.
Смежные вопросы:
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. 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 .
См. Также:
Происходит при попытке доступа к массиву по ключу, который не существует в массиве.
Типичным примером уведомления 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] Связанные вопросы:
- Ссылка: «Примечание: неопределенная переменная» и «Примечание: неопределенный индекс»
- Все вопросы PHP «Замечание: неопределенный индекс» по Stackoverflow
- http://php.net/arrays
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] Связанные вопросы:
- Ссылка: «Примечание: неопределенная переменная» и «Примечание: неопределенный индекс»
- Все вопросы PHP «Замечание: неопределенный индекс» по Stackoverflow
- http://php.net/arrays
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] будет ( демо ) Оба [115] и [116] не существуют в массиве, вызывая срабатывание [117] . Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя [118] или [119] : Если у вас есть код вроде: , тогда [1110] не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью: Происходит при попытке доступа к массиву по ключу, который не существует в массиве. Типичным примером уведомления Оба Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя Если у вас есть код вроде: , тогда Происходит при попытке доступа к массиву по ключу, который не существует в массиве. Типичным примером уведомления [114] будет ( демо ) Оба [115] и [116] не существуют в массиве, вызывая срабатывание [117] . Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя [118] или [119] : Если у вас есть код вроде: , тогда [1110] не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью: Связанные вопросы: Связанные вопросы: Происходит при попытке доступа к массиву по ключу, который не существует в массиве. Типичным примером уведомления Оба Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя Если у вас есть код вроде: , тогда Происходит при попытке доступа к массиву по ключу, который не существует в массиве. Типичным примером уведомления [114] будет ( демо ) Оба [115] и [116] не существуют в массиве, вызывая срабатывание [117] . Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя [118] или [119] : Если у вас есть код вроде: , тогда [1110] не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью: Связанные вопросы: Связанные вопросы: Происходит при попытке доступа к массиву по ключу, который не существует в массиве. Типичным примером уведомления Оба Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя Если у вас есть код вроде: , тогда Происходит при попытке доступа к массиву по ключу, который не существует в массиве. Типичным примером уведомления [114] будет ( демо ) Оба [115] и [116] не существуют в массиве, вызывая срабатывание [117] . Решение состоит в том, чтобы убедиться, что индекс или смещение существует до доступа к этому индексу. Это может означать, что вам нужно исправить ошибку в вашей программе, чтобы убедиться, что эти индексы существуют, когда вы ожидаете их. Или это может означать, что вам нужно проверить, существуют ли индексы, используя [118] или [119] : Если у вас есть код вроде: , тогда [1110] не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью: Связанные вопросы: Связанные вопросы: Связанные вопросы:
не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью: Примечание: неопределенный индекс
if (
Примечание: неопределенный индекс
Undefined Index
будет ( демо ) spinach
и 1
не существуют в массиве, вызывая срабатывание E_NOTICE
. array_key_exists
или isset
:
не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью: Примечание: неопределенный индекс
POST) .. // if the Примечание: неопределенный индекс
Undefined Index
будет ( демо ) spinach
и 1
не существуют в массиве, вызывая срабатывание E_NOTICE
. array_key_exists
или isset
:
не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью: Примечание: неопределенный индекс
POST array is not empty
// or
if ( Примечание: неопределенный индекс
Undefined Index
будет ( демо ) spinach
и 1
не существуют в массиве, вызывая срабатывание E_NOTICE
. array_key_exists
или isset
:
не будет установлен при первой загрузке этой страницы, и вы получите вышеуказанную ошибку. Индекс массива будет существовать только после отправки формы и повторного запуска этого кода. Обычно вы проверяете это с помощью: Примечание: неопределенный индекс
Связанные вопросы:
, к Строковым смещениям и элементам массива могли получить доступ фигурные скобки {}
до 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 , который пытается зафиксировать это механически.