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
Форумы портала PHP.SU :: Версия для печати :: Можно ли обращаться к не определенным переменным?
Форумы портала PHP.SU » » Вопросы новичков » Можно ли обращаться к не определенным переменным?

Страниц (2): [1] 2 »
 

1. kostyan - 29 Июля, 2011 - 10:20:01 - перейти к сообщению
Насколько не правильно обращаться к переменным, которые не определены…
Пример:
Переменная $a не была определена…
echo ‘сегодня’.$a;
или
if ($a)…
собственно ошибки не выводит , но хотелось точно бы знать?!
Спасибо.
2. CTAPu4OK - 29 Июля, 2011 - 10:46:15 - перейти к сообщению
<?php
error_reporting(7);
3. kostyan - 29 Июля, 2011 - 11:22:41 - перейти к сообщению
Так я правильно понял, что так делать НЕЛЬЗЯ?!
Подскажите тогда, как организовать красиво вывод такой структуры, при определенных элементах и при первой загрузке страницы, когда элементы не определены, не дублируя строки?

Часть стоки для вывода к примеру:
…“ цвет $arr[1], количество $arr[2], масса $arr[2]”….
Спасибо.
4. Мелкий - 29 Июля, 2011 - 11:32:36 - перейти к сообщению
kostyan пишет:
собственно ошибки не выводит , но хотелось точно бы знать?!

Выводит, если вы их слушаете. Уровень E_NOTICE, строго говоря - предупреждение, но делать так не стоит.
Включите, вообще, для разработки E_ALL | E_STRICT

kostyan пишет:
при первой загрузке страницы, когда элементы не определены

Почему элементы не определены при первой загрузке?
Проверяйте на существование и в случае отсутствия, объявляйте.
5. iflight - 29 Июля, 2011 - 11:37:49 - перейти к сообщению
не совсем понятен второй вопрос но если не знаете существует ли переменная,то можно делать так:

Или например так:

6. kostyan - 29 Июля, 2011 - 11:57:55 - перейти к сообщению
Спасибо за отклики..
Видимо
iflight пишет:
Почему элементы не определены при первой загрузке?

а, зачем мне их определять если они выводиться не будут, а при следующем обращение будут?!
так как все же сделать красиво вывод строки:
…“ цвет $arr[1], количество $arr[2], масса $arr[3]”
при первой загрузке, когда массиив не определен (не дублируя эту строку, и не засовывая в каждый элемент массива пустую строку )и при последующих когда определен?

спасибо.
7. Мелкий - 29 Июля, 2011 - 12:11:10 - перейти к сообщению
А если они выводиться не будут - то проверьте на несуществование и не выводите.
8. iflight - 29 Июля, 2011 - 12:28:04 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. цвет if(isset($arr[1]){ echo $arr[1];}, количество if(isset($arr[2]){ echo $arr[2];}, масса if(isset($arr[3]){ echo $arr[3];}

м?
9. kostyan - 29 Июля, 2011 - 13:11:35 - перейти к сообщению
Мелкий пишет:
А если они выводиться не будут - то проверьте на несуществование и не выводите.


а если красивый способ не вывода, кроме того который предложил, iflight ?
10. LIME - 29 Июля, 2011 - 13:41:16 - перейти к сообщению
echo 'цвет'.($arr[1])?$arr[1]:'';// итд.
тоже самое вид сбоку
11. OrmaJever - 29 Июля, 2011 - 13:48:26 - перейти к сообщению
LIME во-первых нужно взять в скобки всё выражение, во-вторых нужно проверять isset иначе будет нотис.
PHP:
скопировать код в буфер обмена
  1. echo 'цвет' . (isset($arr[1]) ? $arr[1] : '');
12. kostyan - 29 Июля, 2011 - 13:55:24 - перейти к сообщению
LIME пишет:
echo 'цвет'.($arr[1])?$arr[1]:'';// итд.
тоже самое вид сбоку


смотрится красиво, тока не работает. (Notice: Undefined variable: arr in)
13. iflight - 29 Июля, 2011 - 15:06:44 - перейти к сообщению
ахаха, ну и хрень же я написал)) простите за выражение) тогда тока проснулся)
kostyan пишет:
смотрится красиво, тока не работает. (Notice: Undefined variable: arr in)

Забыли isset(), см. пост OrmaJever
14. EuGen - 29 Июля, 2011 - 15:47:19 - перейти к сообщению
Объявляйте переменные до их использования. Обращение к необъявленной переменной - как флаг того, что "что-то идёт не так" - NOTICE для того и сделан.
15. kostyan - 29 Июля, 2011 - 18:03:26 - перейти к сообщению
EuGen пишет:
Объявляйте переменные до их использования.


а можно ли объявить переменную но не присвоив ей значения?

было бы тогда проще с моим примером...

 

Powered by ExBB FM 1.0 RC1