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 »   

> Без описания
dimaua2
Отправлено: 11 Июля, 2012 - 02:11:02
Post Id



Посетитель


Покинул форум
Сообщений всего: 434
Дата рег-ции: Янв. 2012  


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






константу числом обозвать нельзя?)
а то просто мне в данном случае выдает 7

(Отредактировано автором: 11 Июля, 2012 - 02:12:39)

 
 Top
IllusionMH
Отправлено: 11 Июля, 2012 - 02:24:39
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




dimaua2, могу ошибаться, но правила для имен констант такие же как и у переменных, т.е.
php.net пишет:
Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP. Правильное имя переменной должно начинаться с буквы или символа подчеркивания и состоять из букв, цифр и символов подчеркивания в любом количестве. Это можно отобразить регулярным выражением: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

так что не прокатит.

При этом 7 это литерал и сам воспринимается как число

(Отредактировано автором: 11 Июля, 2012 - 02:25:21)

 
 Top
dimaua2
Отправлено: 11 Июля, 2012 - 02:28:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 434
Дата рег-ции: Янв. 2012  


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




окей и подскажите еще

PHP:
скопировать код в буфер обмена
  1. $cars = array (
  2.                         "model"=>"Corsa",
  3.                         "speed"=>140,
  4.                         "doors"=>5,
  5.                         "year"=>"2007",
  6.  
  7.        
  8. "opel" => array (
  9.                         "model"=>"Corsa",
  10.                         "speed"=>140,
  11.                         "doors"=>5,
  12.                         "year"=>"2007"
  13.                         ));
  14.                        
  15. echo "<pre>";
  16. var_dump($cars);
  17. echo "</pre>";
  18. echo "uuuuu $cars[doors]";
  19. echo "uuuuu {$cars[opel][year]}";


допустим я знаю, что echo "uuuuu $cars[doors]"; вот так он мне покажет мое значение, а вот так echo "uuuuu $cars[opel][year]"; выведет, что $cars[opel] массив и просто напишет [year]
то есть если например массив многомерный и я хочу его вывести в двойных кавычках то его нужно брать в фигурные скобки? (тем самым показывая пхп, что вот моя переменная или же в данном случае массив?..так чтоль?)
 
 Top
IllusionMH
Отправлено: 11 Июля, 2012 - 02:42:54
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




dimaua2, так. И при этом явно отмечать, что opel и year - строковые ключи т.е.
PHP:
скопировать код в буфер обмена
  1. echo "uuuuu {$cars['opel']['year']}";

а еще лучше использовать конкатенацию
PHP:
скопировать код в буфер обмена
  1. echo "uuuuu ".$cars['opel']['year'];

с подсветкой и автодополнением. Радость
Так проще заметить где переменные, а где текст вокруг них. И соответственно проще отлавливать ошибки.

Могу ошибаться. Проснуться спецы - поправят Улыбка

(Отредактировано автором: 11 Июля, 2012 - 02:44:07)

 
 Top
dimaua2
Отправлено: 11 Июля, 2012 - 11:38:11
Post Id



Посетитель


Покинул форум
Сообщений всего: 434
Дата рег-ции: Янв. 2012  


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





окей, впринцепи я за это знал, просто недосмотрел...насчет конкатенации не всегда удобно....
 
 Top
EuGen Администратор
Отправлено: 11 Июля, 2012 - 12:13:54
Post Id


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


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


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




IllusionMH пишет:
dimaua2, могу ошибаться, но правила для имен констант такие же как и у переменных, т.е.

В целом, ошибаетесь. Объявить константу с именем, состоящим только из цифр, возможно. Более того, даже есть способ получить значение такой константы:


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Dezmont
Отправлено: 11 Июля, 2012 - 12:16:40
Post Id



Частый гость


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


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




dimaua2, не сочтите не уместным, но я бы посоветовал Вам прочитать
Мануал, раздел справочник языка тупо по-порядку. Там очень много подобных интересных "фишек". )) А потом уже будете знать в какой раздел подглядывать.
 
 Top
dimaua2
Отправлено: 11 Июля, 2012 - 14:34:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 434
Дата рег-ции: Янв. 2012  


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




спасибо, но я пока уроки досматрю...
(Добавление)
EuGen пишет:
IllusionMH пишет:
dimaua2, могу ошибаться, но правила для имен констант такие же как и у переменных, т.е.

В целом, ошибаетесь. Объявить константу с именем, состоящим только из цифр, возможно. Более того, даже есть способ получить значение такой константы:

оо спасибо)
кст там где вы указали 10 - это значение может быть строчкой или же числом верно?
(Добавление)
Кст IllusionMH был прав
в мануале вычитал...

Цитата:
Правильное имя начинается с буквы или символа подчеркивания и состоит из букв, цифр и подчеркиваний.

Но опять тут же вы говорите, что может быть только из цифр...и кто же прав?)
 
 Top
EuGen Администратор
Отправлено: 11 Июля, 2012 - 14:47:34
Post Id


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


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


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




dimaua2
В мануале верно говорится - "правильное имя". Но "неправильное" - не значит, что Вы не сможете объявить. Но значит, что Вы не сможете обратиться к ней так, как положено обращаться к константе. Предложенный мною способ - это своего рода ущихрение, не стоит объявлять константы с именем-строкой, состоящей только из цифр. Кроме того, не стоит путать constant('7') и constant(7)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
dimaua2
Отправлено: 11 Июля, 2012 - 14:58:08
Post Id



Посетитель


Покинул форум
Сообщений всего: 434
Дата рег-ции: Янв. 2012  


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




constant('7') и constant(7)
а вот тут разница лишь в том, что в первом случае константа строка, а во втором число верно?
(Добавление)
И последни вопросик по константам....

PHP:
скопировать код в буфер обмена
  1. define("FFF", false);
  2. if(defined("FFF")){
  3. echo "yes";
  4. }
  5. else{
  6. echo "no";
  7.  
  8. echo FFF;


вот если сделать define("FFF", false); то что попадет в значение этой константы?
если проверять то она есть (ифом проверял....)
но если отдельно ее вывести, то ничего не показывает
 
 Top
caballero
Отправлено: 11 Июля, 2012 - 15:15:19
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




во первых вместо define лучше использовать const - быстрее работает
во вторых какой смысл объявлять константу числом если можно использовать само число?


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
dimaua2
Отправлено: 11 Июля, 2012 - 15:16:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 434
Дата рег-ции: Янв. 2012  


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




я для эксперемента ее числом...но смысла нет...что делать с тем, о чем написал выше?
 
 Top
Мелкий Супермодератор
Отправлено: 11 Июля, 2012 - 15:21:09
Post Id



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


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


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




dimaua2 пишет:
а вот тут разница лишь в том, что в первом случае константа строка, а во втором число верно?

Приведение типов, оба варианта укажут на одну и ту же константу.

dimaua2 пишет:
вот если сделать define("FFF", false); то что попадет в значение этой константы?

false и попадёт. Всё то же самое, что и с обычной переменной. False при приведении к строке становятся пустой строкой, тогда как true - 1.
При отладке пользуйтесь var_dump


-----
PostgreSQL DBA
 
 Top
IllusionMH
Отправлено: 11 Июля, 2012 - 15:27:06
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




EuGen, теперь буду знать Улыбка
dimaua2, так показывает
PHP:
скопировать код в буфер обмена
  1. define("FFF", false);
  2. if(defined("FFF")){
  3. echo "yes";
  4. } else {
  5. echo "no";
  6. }
  7.  
  8. var_dump(FFF);

(Добавление)
Я буду обновлять страницу перед отправкой. (вроде ж обновлял)

(Отредактировано автором: 11 Июля, 2012 - 15:38:18)

 
 Top
dimaua2
Отправлено: 11 Июля, 2012 - 16:39:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 434
Дата рег-ции: Янв. 2012  


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




Стоп вот все же немного объясните.
Смотрите я создаю константу ФФФ и в значение пихаю фелсе.
Потом проверяю есть ли такая константа, если есть ес, если нет но..так вот суть вопроса если же в константе лежит фелсе она считается, что существует?
PHP:
скопировать код в буфер обмена
  1. $t=false;
  2. if($t){
  3. echo "yes";
  4. }
  5. else{
  6. echo "no";
  7. }


вот с переменными в данном случае показывае ноу
 
 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