Автор Тема: обращение к элементу массива  (Прочитано 4030 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн xRUSha

  • ...
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.flashcafe.ru
обращение к элементу массива
« : 22 Марта 2005, 02:45:36 »
здраствуйте.
мне нужна консультация php\'ника
ситуация такая - я скачал скрипт, который мне нужно проапдейтить и на его основе сделать сайт.
но при попытке установить его сталкнулся с проблемой:
все обращения к элементам массивов в этих скриптах были в такой вот форме


$home 
$_SERVER[DOCUMENT_ROOT];
....
$pwd $_COOKIE[password];
...
$bar $foo [pass]


т.е. без ковычек в индексе.
я всегда был уверен, что обращатся к элементу массива нужно по индексу или числовому $foo[0] или строковому $foo["dsasda"], но если используется строковый индекс, то его необходимо брать в ковычки.

а прочитав этот код я понимаю что был неправ, т.к. он работает на сервере.

собственно мой вопрос такой - в каких случаях к элементу массива можно обращатся через строковый индекс без ковычек. может какое-нить значение php.ini? на php.net я ничего на эту тему не нашел (может плохо искал?)
...

Оффлайн Заглянувший

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
обращение к элементу массива
« Ответ #1 : 22 Марта 2005, 07:24:07 »
Об этом написано в мануале по PHP. Без кавычек работать будет (пока), но это не правильно.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
обращение к элементу массива
« Ответ #2 : 22 Марта 2005, 08:35:30 »
Цитировать
а прочитав этот код я понимаю что был неправ

С чего ты взял, что это ты был неправ? неправ как раз автор скрипта.
Цитировать
в каких случаях к элементу массива можно обращатся через строковый индекс без кавычек

НИ В КАКИХ.
без кавычек он перестаёт быть строковым.

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

Оффлайн xRUSha

  • ...
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.flashcafe.ru
обращение к элементу массива
« Ответ #3 : 22 Марта 2005, 15:03:24 »
Цитировать

Об этом написано в мануале по PHP. Без кавычек работать будет (пока), но это не правильно.

где это написано - ткни меня носом если не сложно. я не нашел

Цитировать

НИ В КАКИХ.
без кавычек он перестаёт быть строковым.


но работает же. вот мне и хочется выяснить в при каких условиях. как должен быть настроен пхп и какая нужна версия чтоб это работало
...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
обращение к элементу массива
« Ответ #4 : 22 Марта 2005, 15:12:15 »
Цитировать
xRUSha:
где это написано - ткни меня носом если не сложно. я не нашел

в докуметации на массивы, тормоз.
Цитировать
xRUSha:
но работает же.

это тебе мерещится.
Цитировать
xRUSha:
вот мне и хочется выяснить в при каких условиях.

НИ ПРИ КАКИХ.
Не понял ещё? Ну так перечитай ещё раз.

кто ты такой, вообще? Тебе сказали, как правильно. Взял под козырёк и ушуршал исполнять. Рассуждать мал ещё. понятно?
Всё, вопрос закрыт.
СТРОКИ
В ПХП
ПИШУТСЯ В КАВЫЧКАХ

А найдёшь ты или не найдешь в мануале - это уже дело десятое. Доказывать тебе никто ничего не должен. Тебя достаточно проинформировать. тнформацию ты получил. Свободен

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
обращение к элементу массива
« Ответ #5 : 22 Марта 2005, 17:23:06 »
короче.
Меня бесит, когда ламеры стоят на своём, НЕПРАВИЛЬНОМ мнении.
И сразу уже не хочется что-то объяснять.
потому, что одно дело - это когда человек принял к сведению, и спросил - "а почему". И совсем другое - когда от горшка два вершка, а всё равно "как сделать, чтобы работало".
послеждний шанс. Объясняю.
Хотя вероятность дохождения черезвычайно мала.

Почему нужно писать ключи массивов правильно, а не так, как это рекомендует делать малограмотный Руслан Курепин?

Строки в PHP должны заключаться в кавычки. По этому признаку, собственно, интерпретатор и отличает строки от других элементов программы. Если же мы написали строку без кавычек, то PHP сначала решит, что это константа и попытается подставить её значение. Не найдя константу, PHP предположит, что нерадивый программист просто забыл подставить кавычки. Интерпретатор пожалеет несчастного и продолжит разбор программы, но при этом сообщит програмисту всё, что о нём думает. Но только если его попросить об этом.
А просить надо всегда.
Хлеб программиста - тяжек и горек. Незаметные ошибки подстерегают его на каждом шагу, и на то, чтобы поймать хотя бы одну, уходят многие и многие часы (ну кроме случаев, когда ты вываливаешь свой код на форум и толпа людей, которым больше ну совершенно нечем заняться, лихо начинают это делать за тебя).
Интерпретатор, по мере сил и способностей, пытается помочь программисту. В частности, подсказывая, что переменная или константа, к которой он обращается, не существует.
Для этого писать программы надо при уровне отображения ошибок E_ALL. Обязательно.
Поскольку помимо отлова ошибок, эта директива помогает и от взлома. Ведь, если мы всегда обращаемся только к объявленным переменным, значит, нам гарантированно ничего в скрипт не подсунет злобный хакер снаружи, какое бы значение ни принимала директива register_globals.
Поэтому, вопреки распространённому заблуждению, нотайсы, которые выдаёт PHP при E_ALL - это не досадная надоедливая фича, внесённая разработчиками PHP в язык только для того, чтобы досадить программистам, а насущная необходимость.

Отсюда следует простой вывод.
Программы надо писать так, чтобы сообщение о возможной ошибке (которым является нотайс), указывало именно на возможную ошибку. А не на нашу неряшливость. Экономия двух спичек на массиве несоразмерима с проблемами, которые она может вызвать.

Оффлайн xRUSha

  • ...
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.flashcafe.ru
обращение к элементу массива
« Ответ #6 : 22 Марта 2005, 18:34:39 »
отвечать не хочется

тем более одному из
Цитировать

толпы людей, которым больше ну совершенно нечем заняться
...

Оффлайн Заглянувший

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
обращение к элементу массива
« Ответ #7 : 23 Марта 2005, 09:03:41 »
Цитировать
xRUSha:
где это написано - ткни меня носом если не сложно. я не нашел

http://ru.php.net/manual/ru/language.types.array.php#language.types.array.donts

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28