Forum Webscript.Ru
Программирование => PHP => Тема начата: C++ от 15 Января 2004, 16:50:50
-
Как сделать, чтобы можно было вот так обращаться к массиву $mass[name], т.е. без апострофов ($mass[\'name\']).
name - не переменная - просто строка.
Заранее спасибо!
-
Никак не сделать.
Очень странно слышать такой вопрос от человека, с таким ником. Очень.
"без апострофов" - это не "просто строка", а КОНСТАНТА.
Запомни это.
Строки в РНР ограничиваются кавычками ,одинарными или двойными.
константы пишутся без кавычек.
числа - тоже.
Индексом массива может быть или целое число, или строка.
значит, обращение к элементу массива можно написать пятью способами:
Либо написав сам индекс:
$array[0]
$array[\'string\']
$array["string"]
либо подставив в качестве индекса константу или переменную
$array[CONSTANT]
$array[$variable]
Таков синтаксис языка РНР.
Есдинственный способ писать не соблюдая синтаксис языка - писать на другом.
-
а можно полюбопытствовать зачем собственно понадобилось писать "без апострофов"
-
цитата из мана
Why is $foo[bar] wrong?
You should always use quotes around a string literal array index. For example, use $foo[\'bar\'] and not $foo[bar]. But why is $foo[bar] wrong? You might have seen the following syntax in old scripts:
$foo[bar] = \'enemy\';
echo $foo[bar];
// etc
?>
This is wrong, but it works. Then, why is it wrong? The reason is that this code has an undefined constant (bar) rather than a string (\'bar\' - notice the quotes), and PHP may in future define constants which, unfortunately for your code, have the same name. It works because PHP automatically converts a bare string (an unquoted string which does not correspond to any known symbol) into a string which contains the bare string. For instance, if there is no defined constant named bar, then PHP will substitute in the string \'bar\' and use that.
-
AliMamed Дали переделать скрипт, так вот там все без кавычек, а если все править, то очень долго и нехотелось, задача исправить было другое и понять, что он делает.
Макс Спасибо за ответ, об изменении error_reporting в php.ini, только вот сейчас его не вижу почему-то....
RomikChef Извини, но можно без поучений :abuse: , я спросил только то, что я спросил и ничего более.
-
C++ На Ромика не кати, он тебе всё популярно обьяснил.
Ты в состоянии перевести то что тебе Макс процитировал?..
В дримвьювере есть така фича "find and replace" ставиш галку "Use Regular Expressions" и пишешь регекспину типа:
Найти: \\$(\\w+)\\[(\\[a-zA-Z]+)\\]
Заменить на: $$1[\'$2\']
-
Neter, дело в том, что наш добренький Максик, чтоб его черти забрали, все время торопится угодить каждому встречному ламеру.
И рассказывает не как правильно сделать, а так, как изволит их ламерское величество.
И этот ламерский ответ ушел на емейл.
У меня несколько отличается взгляд на то, как надо отвечать на вопросы. Я не буду отвечать человеку, который спрашивает, как ему удобнее бить головой об стенку.
У макса другое мнение. Поэтому скоро я буду нахрен буду удалять его посты вообще не глядя - на всякий случай. Пусть жалуется - я за это место не держусь.
С++
Без поучений нельзя.
Если у тебя у самоо ума не хватает, то где, как не здесь тебя учить.
Если не нравится - тебя здесь никто не держит.
-
RomikChef
Поэтому скоро я буду нахрен буду удалять его посты вообще не глядя - на всякий случай.
[off] во-первых совесть не позволит.
Во-вторых, в этом случае, я свои ответы на ПС дублировать буду :P
В-третьих, есть кандидаты, которым проще один раз ответить "неправильно", чем 20 страниц объяснять как сделать правильно и почему им стоит искать другую работу[/off]
-
дублируй хоть в спортлото.