Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: непонятный синтаксис в масивах
if($T[key]=="D"){$T[key]="1";$terr="<br><i>какой то текст</i>";}
if($T[key]=="O"){$T[key]="2";$terr="<br><i>еще какой то текст</i>";}
(код слегка поправил НО)
никак не могу понять как вообще может подобное работать (хотя не уверен что оно и щас работает)
ведь насколько я знаю индексом в масиве выступает или строка или переменная
а в данном случае key вообще непонятно что.
может кто разъяснить в какой версии PHP синтаксис подобные изыскания разрешает?
SAD
Отправлено: 28 Октября, 2010 - 16:08:10
Постоянный участник
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Помог: 75 раз(а)
Возможно key константа, тогда все будет верно. Но на самом деле ключ должен быть в кавычках. Это уже где то обсуждалось
Uchkuma
Отправлено: 28 Октября, 2010 - 16:09:13
Участник
Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010 Откуда: Киров
Помог: 6 раз(а)
Строка вне кавычек интерпретируется как константа. Если данная константа не была ранее определена, ее имя будет определено как строка, а также будет сгенерирована ошибка типа E_NOTICE.
DlTA
Отправлено: 28 Октября, 2010 - 16:25:55
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
SAD пишет:
Возможно key константа...
совсем забыл про константы
но во всех файлах проекта отсутствует константа "key"
и в базе из которой вытягивается $T присутствует поле "key"
поэтому и логически не вижу смысла (для разработчика) создавать константу key=="key"
Саныч
Отправлено: 28 Октября, 2010 - 16:27:59
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
Если у вас все работает, значит где-то эта key все-таки определяется... Если же нет, то должно вылазить предупреждение...
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
DlTA
Отправлено: 28 Октября, 2010 - 16:30:27
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
Uchkuma пишет:
Строка вне кавычек интерпретируется как константа. Если данная константа не была ранее определена, ее имя будет определено как строка, а также будет сгенерирована ошибка типа E_NOTICE.
спасибо
значит все же это не корректный синтаксис.
и намеченные исправления необходимы.
Саныч пишет:
Если у вас все работает, значит где-то эта key все-таки определяется... Если же нет, то должно вылазить предупреждение...
сервер не выдает ошибок, если проблемы с синтаксисом он возвращает пустую страничку (дебажить просто "радость")
OrmaJever
Отправлено: 28 Октября, 2010 - 16:52:07
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
DlTA пишет:
ведь насколько я знаю индексом в масиве выступает или строка или переменная
а в данном случае key вообще непонятно что.
php умная програма Если нету такой константы то php ищет индекс масива key.
Правельнее ставить индексы масивов в кавычки $T['key']
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Uchkuma
Отправлено: 28 Октября, 2010 - 16:54:57
Участник
Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010 Откуда: Киров
Помог: 6 раз(а)
OrmaJever пишет:
php умная програма
Тут больше подходит "PHP - программа для дураков" ))
JustUserR
Отправлено: 29 Октября, 2010 - 12:23:43
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
OrmaJever пишет:
Если нету такой константы то php ищет индекс масива key
Использование схемы обращения к именованным ключам ассоциативной массиве в языке PHP в большой мере унаследовано от Perl в котором определены следующие правила - все находящиеся в исходном выполняемом коде последовательности латинских букв без включенных пробелов и специальных символов - трактуются как строковые константы во всех случаях когда для данного typeglob-поля не определены соответствующие программные элементы - таким образом значение key в явном виде является полноценной строковой константой
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.