| |
|
|
| | Я вот все время обращался через $user['name'], некоторое время назад забыл поставить апострофы, получилось $user[name], я обрадовался, что можно поступать еще короче (разумеется, если до этого не было define ('name', 'smth');.
Однако вчера примерно, когда я дал тут пример кода кому-то, я увидел ошибку в ответ, что типа нет константы name.
Выходит, такая запись, раз заработала, то будет ТОЧНО работать только у меня? | |
| |
|
|
| |
|
|
| |
для: bronenos
(26.01.2007 в 18:47)
| | | Это ошибка - опускать апострофы. PHP втречая запись name думает, что это константа. Если он её находит, то подставляет значение иначе преобразует это имя в строку.
http://www.php.net/manual/ru/language.types.array.php | |
| |
|
|
| |
|
|
| |
для: Sergey89
(26.01.2007 в 18:49)
| | | Все понятно....
Короче, ничего страшного, если нет такой константы и если я не планирую создавать такую... | |
| |
|
|
| |
|
|
| |
для: bronenos
(26.01.2007 в 18:56)
| | | Опять таки лишний Notice.
<?php
error_reporting(E_ALL);
$my = array();
$my[index] = 1;
?>
|
Notice: Use of undefined constant index - assumed 'index' in C:\Program Files\Apache Group\Apache2\htdocs\test.php on line 5
|
| |
| |
|
|
| |
|
|
| |
для: Sergey89
(26.01.2007 в 19:05)
| | | ...и если не планирую вводить error reporting, хотя целый год без него находился =) | |
| |
|
|
| |
|
|
| |
для: bronenos
(26.01.2007 в 18:47)
| | | notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её как правило понижают, это сделано на всех хостингах. Для этого, следует выставляют соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE
|
Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
?>
|
Если будете ставить такую функцию - ваш код будет рабоать везде без выдачи Notice, который является рекомендацией и не обязателен к исправлению.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985 | |
| |
|
|
| |
|
|
| |
для: cheops
(26.01.2007 в 19:46)
| | | Только разработчики PHP сами не советуют опускать апострофы (кавычки). Вот яркий тому пример:
$var[goto] - сейчас работает, а что если в будующей версии PHP добавят оператор goto? Правильно сгенерируется PARSE_ERROR. | |
| |
|
|
| |
|
|
| |
для: Sergey89
(26.01.2007 в 19:52)
| | | PARSE_ERROR возникает сплошь и рядом в этом случае и без гипотетического goto - кавычки опускать действительно не стоит, только если $var[goto] не используется в строке, например
<?php
echo "Значение - $var[goto]<br>";
?>
|
| |
| |
|
|
| |
|
|
| |
для: cheops
(26.01.2007 в 22:14)
| | |
<?php
print "Значение - {$var['goto']}<br>";
?>
|
| |
| |
|
|
| |
|
|
| |
для: bronenos
(26.01.2007 в 22:21)
| | | Это ты к чему? "Значение - {$var['goto']}" - эквивалентно "Значение - $var[goto]". | |
| |
|
|
| |
|
|
| |
для: Sergey89
(26.01.2007 в 22:27)
| | | Типа при выводе константой не заменяется чтоли? | |
| |
|
|
| |
|
|
| |
для: bronenos
(26.01.2007 в 23:37)
| | | В фигурных заменяется, без скобок нет. | |
| |
|
|
| |
|
|
| |
для: Sergey89
(26.01.2007 в 23:54)
| | |
<?php
$var['E_ALL'] = 'var';
$var[E_ALL] = 20473;
print "Значение - {$var['E_ALL']}";
// как ни странно, выведет var
?>
|
| |
| |
|
|
| |
|
|
| |
для: kasmanaft
(27.01.2007 в 09:05)
| | | Ну да. Логично. А если опустить апострофы? | |
| |
|
|
| |
|
|
| |
для: Sergey89
(27.01.2007 в 10:27)
| | | >>>>>> {$var['goto']} - эквивалентно $var[goto]
>>>>при выводе константой не заменяется чтоли?
>>В фигурных заменяется
Сорри, я вас неправильно понял. | |
| |
|
|