Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Константы
 
 автор: valenok   (07.07.2006 в 21:50)   письмо автору
 
 

И зачем они нужны? Чем людей не устраивают обычные переменные?

   
 
 автор: valenok   (07.07.2006 в 22:00)   письмо автору
 
   для: valenok   (07.07.2006 в 21:50)
 

Цитата с пхп.нет

По принятому соглашению, имена констант всегда пишутся в верхнем регистре.


Когда такое соглашение было принято тобою?
Тогда зачем тебе писать в верхнем регистре?
А точнее зачем по твоему порталу php.net тебе советовать как писать константы?
Самому не понять как тебе удобней?
--
Ах чтоб ещё и другим ваш код было читать удобно..
Свистнул где то код да ещё и читать удобно .

   
 
 автор: cheops   (07.07.2006 в 22:44)   письмо автору
 
   для: valenok   (07.07.2006 в 22:00)
 

Это очень древнее соглашение, корни его уходят в C - переменные пишут в нижнем регистре, а константы в верхнем, чтобы они отличались друг от друга и чтобы читающий код понимал, что это не переменная, а константа и её значение следует поискать в заголовочном файле. В PHP такая нотация не очень актуальна, так как сразу видно что перед нами константа или переменная по символу $, но PHP-программисты как люди с очень молодой культурой таскают нарботанную культуру в других языках и это не плохо, мне так кажется...

   
 
 автор: valenok   (07.07.2006 в 22:03)   письмо автору
 
   для: valenok   (07.07.2006 в 21:50)
 

-А какже это:

 константы доступны из любой области видимости.


-Ну так ведь это проще чем

global $я_леньтяй

Ну всё валенок, я тебя подлавил.. Что скажешь на это:
<? function getmicrotime() 

   list(
$usec$sec) = explode(" "microtime()); 
   return ((float)
$usec + (float)$sec); 


$time_start getmicrotime();
 
define("CONSTANT""Hello world.");
echo 
CONSTANT// outputs "Hello world."

$time_end getmicrotime();
$time $time_end $time_start;
echo 
"<BR><BR>Скрипт с константой исполнялся $time секунд\n<br>";

$time_start getmicrotime();
 
$CONSTANT="Hello world.";
echo 
$CONSTANT// outputs "Hello world."

$time_end getmicrotime();
$time $time_end $time_start;
echo 
"<BR><BR>Скрипт с использованием обычной переменной исполнялся $time секунд\n<br>";


Скрипт с константой исполнялся 0.00014591217041 секунд
Скрипт с использованием обычной переменной исполнялся 0.0000200271606445 секунд

   
 
 автор: valenok   (07.07.2006 в 22:11)   письмо автору
 
   для: valenok   (07.07.2006 в 22:03)
 

Прав. Константы намного медленней.
Давай тогда спросим у того кто читал наш с тобой диалог - зачем он пользуется с константами..

   
 
 автор: valenok   (07.07.2006 в 22:13)   письмо автору
 
   для: valenok   (07.07.2006 в 22:11)
 

И так люди. Зачем вы ичпользуете константы?
--
Это был монолог самого себя с собой.
Просто не дождался пока вы придёте и напишите тоже самое.

   
 
 автор: куч1963   (07.07.2006 в 22:20)   письмо автору
 
   для: valenok   (07.07.2006 в 22:13)
 

lделал двуязычный сайт, прописывал всю лабуду - меню, названия в формах в константы, потом по необходимости подставлял, но муторное это дело.

   
 
 автор: cheops   (07.07.2006 в 22:48)   письмо автору
 
   для: valenok   (07.07.2006 в 22:13)
 

Константы предназначены для одной простой вещи, чтобы давать осмысленые имена "магическим числам", т.е. бесхозным числам в коде вроде числа элементов на странице в постраничной навигации. Это позволяет и назвать число осмысленным именем и с другой стороны не позволяет его случайно изменить. Переменную можно затереть и следить за этим особенно в большом объёме кода сложно, а константу затереть не получится - она принимает строго определённое значение, которое не меняется... в PHP это тоже не очень актуально, код, как правило, не большой область видимости ограничена файлом, а не целым приложением.

   
 
 автор: valenok   (08.07.2006 в 11:59)   письмо автору
 
   для: cheops   (07.07.2006 в 22:48)
 

И часто у вас такое бывает что вы стирнаете переменные?
У опытных программистов с этим вообще никаких проблем е возникает а у не опытные не используют чаще всего константы..

   
 
 автор: cheops   (08.07.2006 в 14:36)   письмо автору
 
   для: valenok   (08.07.2006 в 11:59)
 

У меня такого не происходит, в том числе и потому, что использую константы.

PS Иногда по не знанию, программистам приходит в голову, что некоторые конструкции языка лишние, именно отсутсвие таких мыслей отличает опытных программистов от неопытных, которые не работали над кодом содержащим миллионы строк и десятки мегабайт исходного кода, над которым трудятся несколько десятков или сотен человек одновременно. В таких условиях затереть переменную очень просто, а управлять "чистотой" и качеством кода очень сложно, так как над проектом трудится не один мозг обмен информацией в котором идёт со скоростью порядка 7 Терафлоп, а несколько, обменивающихся информацией со скоростью тысячной герца. Единственная возможность не загнать проект в неуправляемое пике - вводить строгие правила и исключать возможность допуска ошибки любыми средствами, в том числе и запретом редактирования того, что не должно подвергаться редактированию. И следить под страхом увольнения, чтобы никто эти требования не нарушал. 200 строк можно держать в голове - миллионы строк держать в голове не реально, зачастую даже не реально исправить ошибку, чтобы не внести ещё тысячи ошибок в код. Поверьте константы давно бы выкинули ещё 1980 году, если бы они не были нужны, как был выкинут goto из многих языков, как был выкинут множественный вход в функции, который не успел добраться вообще ни до какого языка, кроме фортрана и многое др.

   
 
 автор: Кузнецов М.В.   (09.07.2006 в 02:46)   письмо автору
 
   для: valenok   (08.07.2006 в 11:59)
 

>И часто у вас такое бывает что вы стирнаете переменные?
>У опытных программистов с этим вообще никаких проблем е
>возникает а у не опытные не используют чаще всего
>константы..
:)))
Это когда я посещал у одного академика его физический кружок, там один парень был, помешанный на изобретении вечного двигателя. Те, кто знает физику, поймут состояние академика, в которое он впал после того, что ему парнишка ответил. Академик произнес на одно его изречение:
- Вы же знаете, что вечный двигатель второго рода не существует!
- Но никто же не говорил, что нет вечного двигателя третьего рода, - парировал парень.
- #$^^&$^&&, - сказал академик.
Парень задумался на недолго, и потом выдал свой второй перл:
- Ну а если этот двигатель будет совсем маломощным?
Академик справедливо подумал, что над ним очень изощренно издеваются. Правда, он ошибся. Парень всерьез так думал.

   
 
 автор: Pipish   (08.07.2006 в 23:02)   письмо автору
 
   для: valenok   (07.07.2006 в 22:03)
 

>

> константы доступны из любой области видимости.
>

Это значит что в какой нибудь функции константы будут доступны даже если их не прописать во входящих параметрах, я правильно понял?

   
 
 автор: cheops   (09.07.2006 в 11:04)   письмо автору
 
   для: Pipish   (08.07.2006 в 23:02)
 

Да.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования