[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: $_GET['var'], $_GET["var"] или $_GET[var] ?
Commander Keen
Я в PHP ну просто полный лапоть конечно, но вот такие вольности очень раздражают (перехожу, вернее пытаюсь перейти на PHP с прикладных языков. У меня вопрос, который некоторым людям наверное покажется просто жутьём жутким и всё такое, но всё же, вразумите как говориться неразумного. В чём разница между этими тремя строками (в функциональном смысле):

print($_GET['DBGSESSID']);
print($_GET["DBGSESSID"]);
print($_GET[DBGSESSID]);


Как нужно? Как правильно? Как не нужно? и.т.п. Почему тогда все пишут с одинарной кавычкой, если скобки можно не писать вообще например? Если разницу между первыми двумя вариантами я кое-как понять ещё могу, но вот третье взрывает моё осознание в этом довольно интересном, но новом для меня языке. Может я что-то упустил в теме массивов? Ну вы меня поняли, мужики =).

Конструктивно, не крича, академически. Спасибо! :)



Спустя 3 минуты, 11 секунд (9.01.2012 - 10:54) Игорь_Vasinsky написал(а):
Цитата
print($_GET[DBGSESSID]);


здесь может подразумеваться как константа DBGSESSID - будет нотис


эти нормально, но первый предпочтительней, не аргументирую

print($_GET['DBGSESSID']);
print($_GET["DBGSESSID"]);


Спустя 2 минуты, 29 секунд (9.01.2012 - 10:57) TMake написал(а):
Цитата (Yegor Opanasjuk @ 9.01.2012 - 11:51)
все пишут с одинарной скобкой

не скобкой, а кавычкой
для себя отделил что одинарная в php и js, двойная в html

Спустя 8 минут, 48 секунд (9.01.2012 - 11:05) Commander Keen написал(а):
Тьфу, да, простите, кавычкой. Тупанул, простите.

Цитата
здесь может подразумеваться как константа DBGSESSID - будет нотис

Ну не, это - переменная. Проверил.

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

Правильно:
print($_GET['DBGSESSID']);

С пивом потянет:
print($_GET["DBGSESSID"]);

Никогда так не делай:
print($_GET[DBGSESSID]);


Верный вывод?

Спустя 7 минут, 55 секунд (9.01.2012 - 11:13) Jack_White написал(а):
одинарные ' ' говорят читать всё как есть, т.е. '$r' - это строка '$r' а не переменная, плюс экранировать не нужно. А "$r" это переменная $r, и здесь уже необходимо когда нужно экранировать некоторые символы. По идее одинарные работают быстрей и лучше использовать их когда можно, но и "Hello, $name" считается дурным тоном(т.к. например может вызвать ошибку распознавания переменной если сложное название, в таких случаях {$name}), но лучше 'Hello, '. $name. Ну а вообще дело твое)))
$arr[12] когда ключ массива число, то кавычки не нужны а когда стринг то нужны, просто PHP сам преобразует в строку но это тож не правильно с эстетической точки зрения, нужно писать с кавычками строковые ключи и без численные, но для PHP критической разницы нет...
Негласное правило писать константы ПРОПИСНЫМИ БУКВАМИ так что эт тож вводит в заблуждение

Спустя 6 минут, 21 секунда (9.01.2012 - 11:20) Commander Keen написал(а):
Ах, вот, теперь стало понятно. PHP как бы сам вставляет кавычки. Да, неправильно конечно, можно на первых парах войти в ступор, вот как я сейчас. Вообще, как я понял, PHP позволяет много подобных вольностей. Спасибо всем за развёрнутые ответы.

Тему можно закрыть. Мне всё стало ясно.

Спустя 1 час, 20 минут, 11 секунд (9.01.2012 - 12:40) Ramzil_Nixon написал(а):
Yegor Opanasjuk, сам лично первым способом пользуюсь.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.