[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Динамическая константа
Страницы: 1, 2, 3
ded
Привет.
Цитата
динамически-созданное имя константы, а не её содержимое)
Динамически создаётся значение константы, а не имя.
Я ещё не программист. Я только начал учить php, и не могу пойти дальше, так как остаётся непонятка, для чего эту константу можно применить. Вот про культурные слои, и что такое фича - вроде понятно (хотя я про это и не спрашивал), а про динамическую константу пока не понятно.
Цитата
Сравните как на С№
С№ - англоязычный. Там тоже трудно что-то понять из гугловского перевода. Хотя я ещё въедливо не успел посмотреть.

_____________
Старый конь борозды не испортит
Игорь_Vasinsky
константа на то и константа - что её значение постоянно.

а на твоём скрине - как раз имя создаётся динамически - из содержимого переменной.

не надо ля-ля

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
ded
Пардон, Вы правы. Ну так вопрос остаётся: в чём её применение.

_____________
Старый конь борозды не испортит
GET
Цитата
Ну так вопрос остаётся: в чём её применение.


Могу предположить, что какой-нибудь финт с безопасностью можно сделать, типа вот делают защиту на от инклюда:

if (!defined('TEST'))exit;


Т.е. если где-то там выше в другом скрипте не создана константа TEST, то худбай.
Если применить к этому примеру т.н. вами "динамическу константу", то мало знать слово TEST - первая часть имени константы, нужно будет еще знать вторую часть имени созданную при помощи rand();, т.е. не постоянную и не прописанную статично в коде и записанную куда-нибудь в сессию например, тогда пример можно переписать:

if (!isset($_SESSION['test']) || !defined('TEST'.$_SESSION['test']))exit;


Но по мне дак...это лишнее.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
ded
Ну наконец то. Что-то в этом направлении я и предполагал. Только знаний пока не хватало чтоб утвердиться во мнении. Спасибо.

_____________
Старый конь борозды не испортит
Игорь_Vasinsky
да, это наверно единственный вариант применения) больше ничего в голову не приходит

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Guest
ded
Нужна чтобы у автора была дополнительная глава.
Пример из книги совершенно бесполезен и на безопасность никак не влияет.
Читать книгу которая называется самоучитель php 5/6 я бы не стал.
bestxp
константа это изменяемое значение на протяжении работы скрипта.
как инициализирована и какое значение не важно, важно то что мы не можем его изменить задав один раз, вот и весь их смысл
Игорь_Vasinsky
Цитата
константа это изменяемое значение

Цитата
важно то что мы не можем его изменить задав один раз


в какой строке истина?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
GET
Цитата
константа это изменяемое значение на протяжении работы скрипта.
как инициализирована и какое значение не важно, важно то что мы не можем его изменить задав один раз, вот и весь их смысл

blink.gif

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
bestxp
Мир ваш не будет прежним?

Сейчас это не практикуется, это наследственное от php4
когда не было нормального ООП, да и его не применяли особо, этот подход многими местами заменял глобальные переменные, точнее защищал от соблазна
изменять содержимое глобальной, так и пошло.

еще помню такие куски кода в nuke кмсках

$conf = array('HOST'=> 'localhost', 'USER' => 'USER');
foreach($conf as $name => $val){
define($name, $val);

}


да да были такие куски коды, сейчас уже на замену этого пришел Синглтон заместо глобальных всеми любимых
Игорь_Vasinsky
ну тут о динамичности значения ни слова.

константа создалась - ей назначено значение и баста.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Invis1ble
Цитата (bestxp @ 20.11.2013 - 06:31)
константа это изменяемое значение на протяжении работы скрипта.
как инициализирована и какое значение не важно, важно то что мы не можем его изменить задав один раз, вот и весь их смысл

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

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

bestxp
ну опечатался, что же теперь убивать xD
особенно когда планшет хочет исправить за меня слова
mvg
php.net лучше рассказывает о функции constant(): Функция constant() полезна, если вам необходимо получить значение константы, но неизвестно её имя. Например, если оно хранится в переменной или возвращается функцией.

Т.е. имя константы может быть также определено вызовом статического метода класса или еще чего-то там что не будет означать динамическое определение.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.