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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Можно ли обращаться к не определенным переменным?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
kostyan
Отправлено: 29 Июля, 2011 - 10:20:01
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Насколько не правильно обращаться к переменным, которые не определены…
Пример:
Переменная $a не была определена…
echo ‘сегодня’.$a;
или
if ($a)…
собственно ошибки не выводит , но хотелось точно бы знать?!
Спасибо.
 
 Top
CTAPu4OK
Отправлено: 29 Июля, 2011 - 10:46:15
Post Id



Гость


Покинул форум
Сообщений всего: 67
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




<?php
error_reporting(7);
 
 Top
kostyan
Отправлено: 29 Июля, 2011 - 11:22:41
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Так я правильно понял, что так делать НЕЛЬЗЯ?!
Подскажите тогда, как организовать красиво вывод такой структуры, при определенных элементах и при первой загрузке страницы, когда элементы не определены, не дублируя строки?

Часть стоки для вывода к примеру:
…“ цвет $arr[1], количество $arr[2], масса $arr[2]”….
Спасибо.
 
 Top
Мелкий Супермодератор
Отправлено: 29 Июля, 2011 - 11:32:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




kostyan пишет:
собственно ошибки не выводит , но хотелось точно бы знать?!

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

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

Почему элементы не определены при первой загрузке?
Проверяйте на существование и в случае отсутствия, объявляйте.


-----
PostgreSQL DBA
 
 Top
iflight
Отправлено: 29 Июля, 2011 - 11:37:49
Post Id



Гость


Покинул форум
Сообщений всего: 119
Дата рег-ции: Март 2011  
Откуда: Россия, Сыктывкар


Помог: 2 раз(а)




не совсем понятен второй вопрос но если не знаете существует ли переменная,то можно делать так:

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

(Отредактировано автором: 29 Июля, 2011 - 11:41:22)

 
 Top
kostyan
Отправлено: 29 Июля, 2011 - 11:57:55
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Спасибо за отклики..
Видимо
iflight пишет:
Почему элементы не определены при первой загрузке?

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

спасибо.
 
 Top
Мелкий Супермодератор
Отправлено: 29 Июля, 2011 - 12:11:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




А если они выводиться не будут - то проверьте на несуществование и не выводите.


-----
PostgreSQL DBA
 
 Top
iflight
Отправлено: 29 Июля, 2011 - 12:28:04
Post Id



Гость


Покинул форум
Сообщений всего: 119
Дата рег-ции: Март 2011  
Откуда: Россия, Сыктывкар


Помог: 2 раз(а)




PHP:
скопировать код в буфер обмена
  1. цвет if(isset($arr[1]){ echo $arr[1];}, количество if(isset($arr[2]){ echo $arr[2];}, масса if(isset($arr[3]){ echo $arr[3];}

м?
 
 Top
kostyan
Отправлено: 29 Июля, 2011 - 13:11:35
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Мелкий пишет:
А если они выводиться не будут - то проверьте на несуществование и не выводите.


а если красивый способ не вывода, кроме того который предложил, iflight ?
 
 Top
LIME
Отправлено: 29 Июля, 2011 - 13:41:16
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




echo 'цвет'.($arr[1])?$arr[1]:'';// итд.
тоже самое вид сбоку
 
 Top
OrmaJever Модератор
Отправлено: 29 Июля, 2011 - 13:48:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




LIME во-первых нужно взять в скобки всё выражение, во-вторых нужно проверять isset иначе будет нотис.
PHP:
скопировать код в буфер обмена
  1. echo 'цвет' . (isset($arr[1]) ? $arr[1] : '');


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
kostyan
Отправлено: 29 Июля, 2011 - 13:55:24
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




LIME пишет:
echo 'цвет'.($arr[1])?$arr[1]:'';// итд.
тоже самое вид сбоку


смотрится красиво, тока не работает. (Notice: Undefined variable: arr in)
 
 Top
iflight
Отправлено: 29 Июля, 2011 - 15:06:44
Post Id



Гость


Покинул форум
Сообщений всего: 119
Дата рег-ции: Март 2011  
Откуда: Россия, Сыктывкар


Помог: 2 раз(а)




ахаха, ну и хрень же я написал)) простите за выражение) тогда тока проснулся)
kostyan пишет:
смотрится красиво, тока не работает. (Notice: Undefined variable: arr in)

Забыли isset(), см. пост OrmaJever
 
 Top
EuGen Администратор
Отправлено: 29 Июля, 2011 - 15:47:19
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Объявляйте переменные до их использования. Обращение к необъявленной переменной - как флаг того, что "что-то идёт не так" - NOTICE для того и сделан.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
kostyan
Отправлено: 29 Июля, 2011 - 18:03:26
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




EuGen пишет:
Объявляйте переменные до их использования.


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

было бы тогда проще с моим примером...
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB