Общие константы PHP - PullRequest
2 голосов
/ 13 мая 2011

Я понимаю, что желание обновить или удалить константу - полная противоположность тому, для чего она предназначена, но вот моя проблема.

Я хочу иметь возможность форматировать значение таким же образом, какконстанта делает.то есть: echo foo;

Где это может быть просто текст, а не выводить переменную типа $foo.

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

PS.Я «просто» определил бы ее как константу, однако я хочу, чтобы она могла обновляться (например, переопределять ее во время foreach).

Ответы [ 3 ]

3 голосов
/ 13 мая 2011

Вроде.Первый должен быть без учета регистра:

define("myConstant", "blah", true);
print myConstant; // blah
define("myConstant", "xxxx"); // No warning outputted
print myConstant; // xxxx

Но НЕ ДЕЛАЙТЕ ЭТОГО!Весь смысл константы в том, что она постоянна.Хотя вы, похоже, это признаете, что не так с этим дополнительным знаком $, на самом деле, с гораздо более понятным стилем кода?

1 голос
/ 13 мая 2011

Согласно http://www.php.net/manual/en/function.define.php#92327, вы можете переопределять константы на лету, если это необходимо.

define("FIRST_CONSTANT", 'my 1st value', true);
echo FIRST_CONSTANT;
// my 1st value

define('FIRST_CONSTANT', 'my 2nd value');
echo FIRST_CONSTANT;
// my 2nd value
0 голосов
/ 13 мая 2011

Вы можете использовать имя функции следующим образом:

<?php 
function hello(){ return "bla"; }
$a = hello;
$b = $a();
echo $b;
?>
...