| |
|
|
| | И зачем они нужны? Чем людей не устраивают обычные переменные? | |
| |
|
|
| |
|
|
| |
для: valenok
(07.07.2006 в 21:50)
| | | Цитата с пхп.нет
По принятому соглашению, имена констант всегда пишутся в верхнем регистре.
|
Когда такое соглашение было принято тобою?
Тогда зачем тебе писать в верхнем регистре?
А точнее зачем по твоему порталу php.net тебе советовать как писать константы?
Самому не понять как тебе удобней?
--
Ах чтоб ещё и другим ваш код было читать удобно..
Свистнул где то код да ещё и читать удобно . | |
| |
|
|
| |
|
|
| |
для: valenok
(07.07.2006 в 22:00)
| | | Это очень древнее соглашение, корни его уходят в C - переменные пишут в нижнем регистре, а константы в верхнем, чтобы они отличались друг от друга и чтобы читающий код понимал, что это не переменная, а константа и её значение следует поискать в заголовочном файле. В PHP такая нотация не очень актуальна, так как сразу видно что перед нами константа или переменная по символу $, но PHP-программисты как люди с очень молодой культурой таскают нарботанную культуру в других языках и это не плохо, мне так кажется... | |
| |
|
|
| |
|
|
| |
для: valenok
(07.07.2006 в 21:50)
| | | -А какже это:
константы доступны из любой области видимости.
|
-Ну так ведь это проще чем
Ну всё валенок, я тебя подлавил.. Что скажешь на это:
<? 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:03)
| | | Прав. Константы намного медленней.
Давай тогда спросим у того кто читал наш с тобой диалог - зачем он пользуется с константами.. | |
| |
|
|
| |
|
|
| |
для: valenok
(07.07.2006 в 22:11)
| | | И так люди. Зачем вы ичпользуете константы?
--
Это был монолог самого себя с собой.
Просто не дождался пока вы придёте и напишите тоже самое. | |
| |
|
|
| |
|
|
| |
для: valenok
(07.07.2006 в 22:13)
| | | lделал двуязычный сайт, прописывал всю лабуду - меню, названия в формах в константы, потом по необходимости подставлял, но муторное это дело. | |
| |
|
|
| |
|
|
| |
для: valenok
(07.07.2006 в 22:13)
| | | Константы предназначены для одной простой вещи, чтобы давать осмысленые имена "магическим числам", т.е. бесхозным числам в коде вроде числа элементов на странице в постраничной навигации. Это позволяет и назвать число осмысленным именем и с другой стороны не позволяет его случайно изменить. Переменную можно затереть и следить за этим особенно в большом объёме кода сложно, а константу затереть не получится - она принимает строго определённое значение, которое не меняется... в PHP это тоже не очень актуально, код, как правило, не большой область видимости ограничена файлом, а не целым приложением. | |
| |
|
|
| |
|
|
| |
для: cheops
(07.07.2006 в 22:48)
| | | И часто у вас такое бывает что вы стирнаете переменные?
У опытных программистов с этим вообще никаких проблем е возникает а у не опытные не используют чаще всего константы.. | |
| |
|
|
| |
|
|
| |
для: valenok
(08.07.2006 в 11:59)
| | | У меня такого не происходит, в том числе и потому, что использую константы.
PS Иногда по не знанию, программистам приходит в голову, что некоторые конструкции языка лишние, именно отсутсвие таких мыслей отличает опытных программистов от неопытных, которые не работали над кодом содержащим миллионы строк и десятки мегабайт исходного кода, над которым трудятся несколько десятков или сотен человек одновременно. В таких условиях затереть переменную очень просто, а управлять "чистотой" и качеством кода очень сложно, так как над проектом трудится не один мозг обмен информацией в котором идёт со скоростью порядка 7 Терафлоп, а несколько, обменивающихся информацией со скоростью тысячной герца. Единственная возможность не загнать проект в неуправляемое пике - вводить строгие правила и исключать возможность допуска ошибки любыми средствами, в том числе и запретом редактирования того, что не должно подвергаться редактированию. И следить под страхом увольнения, чтобы никто эти требования не нарушал. 200 строк можно держать в голове - миллионы строк держать в голове не реально, зачастую даже не реально исправить ошибку, чтобы не внести ещё тысячи ошибок в код. Поверьте константы давно бы выкинули ещё 1980 году, если бы они не были нужны, как был выкинут goto из многих языков, как был выкинут множественный вход в функции, который не успел добраться вообще ни до какого языка, кроме фортрана и многое др. | |
| |
|
|
| |
|
|
| |
для: valenok
(08.07.2006 в 11:59)
| | | >И часто у вас такое бывает что вы стирнаете переменные?
>У опытных программистов с этим вообще никаких проблем е
>возникает а у не опытные не используют чаще всего
>константы..
:)))
Это когда я посещал у одного академика его физический кружок, там один парень был, помешанный на изобретении вечного двигателя. Те, кто знает физику, поймут состояние академика, в которое он впал после того, что ему парнишка ответил. Академик произнес на одно его изречение:
- Вы же знаете, что вечный двигатель второго рода не существует!
- Но никто же не говорил, что нет вечного двигателя третьего рода, - парировал парень.
- #$^^&$^&&, - сказал академик.
Парень задумался на недолго, и потом выдал свой второй перл:
- Ну а если этот двигатель будет совсем маломощным?
Академик справедливо подумал, что над ним очень изощренно издеваются. Правда, он ошибся. Парень всерьез так думал. | |
| |
|
|
| |
|
|
| |
для: valenok
(07.07.2006 в 22:03)
| | | >
> константы доступны из любой области видимости.
>
|
Это значит что в какой нибудь функции константы будут доступны даже если их не прописать во входящих параметрах, я правильно понял? | |
| |
|
|
| |
|
|
| |
для: Pipish
(08.07.2006 в 23:02)
| | | Да. | |
| |
|
|