Написал не маленький скрипт, как и положено протестировал его на своей тачке с виндой, загрузил на хостин и появилась куча ошибок. Подскажите, что значат следующие ошибки: Fatal error: [] operator not supported for strings in /home/.../page.php on line 6 Строка 6: $zone[]="R"; Разве нельзя добавить элемент в массив не присваивая явно ему индекс?
И вот еще: Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/.../page.php on line 32 Строка 32: if (!in_array($good,$zone))
Ну в общем если так надо делать, то сделал, хотя мне не попадалось такое требование в книгах по РНР. Везде стразу присваивают переменным массива значения и это работает. Но наверно так и нужно делать, т.к. первая ошибка пропала. А вот это осталось: Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/.../page.php on line 32 Строка 32: if (!in_array($good,$zone)) Подскажите, что ему в этой строке не нравится?
Спасибо, это у меня глаза уже устали. Ошибка в 32 строке пропала, а текущая оказывается в 37 строке. Там тоже был массив, но не был обозванным как массив. Исправил - заработало. Спасибо! Осталось только узнать, почему на хостинге требуется явное указание что это массив?
Прикол в том, что в скрипте еще куча других массивов и с ними in_array() работает без их явного объявления. Подскажите, в каких случая необходимо явно объявлять что переменная является массивом?
PHP: <?php $a[1] = 's'; echo '$a type is '.gettype($a).'<br/>'; $a = 'string'; $a[1] = 's'; echo '$a type is '.gettype($a).'<br/>'; $a = ''; $a[1] = 's'; echo '$a type is '.gettype($a).'<br/>'; ?>
Нет, не используется! Но я на этой почве сделал ОТКРЫТИЕ! Я могу завалить даже вот такой простой скрипт!: PHP: <?php $a[]="a"; $a[]="b"; $a[]="c"; ?> Кто угадает как?
Да! Прикиньте, оно у меня на хостинге по умолчанию оказывается включено! Поэтому если в адресной строке послать ?a=nechto , то получаем ошибку: Fatal error: [] operator not supported for strings in /home/.../page.php on line
Как??? Ведь осталось непонятным самое главное! Почему выскакивает ошибка если в адресной сроке поставить ?a=nechto ??? Вот скрипт: PHP: <?php $a[]="a"; $a[]="b"; $a[]="c"; ?> и при обращении к нему /script.php?a=nechto появляется ошибка Fatal error: [] operator not supported for strings in /home/.../page.php on line а если просто вызывать /script.php никакой ошибки нет.
потому что она строкой становится, и надо делать PHP: $a = array(); о чем и говорили в начале.. можно так: /script.php?a[0]=blabla&a[1]=next_value