Могу ли я передать определенную константу в функцию через переменную в PHP? - PullRequest
1 голос
/ 02 марта 2011

У меня есть следующий код:

DEFINE('DEFINEDTESTVAR', 'Hello World');

function callit($callVar) {
  echo "The call is ".$callVar;
}


$passthis = 'DEFINEDTESTVAR';
callit($passthis);

Я знаю, что могу сделать callit(DEFINEDTESTVAR), но это не то, что я хочу сделать.Возможно ли это?

Ответы [ 4 ]

7 голосов
/ 02 марта 2011

Либо передайте саму константу:

$passthis = DEFINEDTESTVAR;

, либо получите доступ к ней через constant(), что позволяет проверить нулевое значение в случае, если оно не определено (для неопределенных констант,передача константы буквально приводит к строке с именем константы):

$passthis = constant('DEFINEDTESTVAR');
2 голосов
/ 02 марта 2011
define('DEFINEDTESTVAR', 'Hello World'); // you should use define

function callit($callVar) {
  echo "The call is ".$callVar;
}    

$passthis = DEFINEDTESTVAR; // no need to use quotes
callit($passthis);
1 голос
/ 02 марта 2011

Вы можете получить значение константы из строки с помощью constant (). Он вернет ноль, если именованная константа не найдена.

$passthis = constant('DEFINEDTESTVAR');
callit($passthis);
0 голосов
/ 02 марта 2011
<?php 
DEFINE('DEFINEDTESTVAR', 'Hello World');

function callit($callVar) {
  echo "The call is ".$callVar;
}


$passthis = DEFINEDTESTVAR;
callit($passthis);
...