Могу ли я передать определенную константу в функцию через переменную в PHP?
У меня есть следующий код:
DEFINE('DEFINEDTESTVAR', 'Hello World');
function callit($callVar) {
echo "The call is ".$callVar;
}
$passthis = 'DEFINEDTESTVAR';
callit($passthis);
Я знаю, что могу сделать callit(DEFINEDTESTVAR)
но это не то, что я хочу сделать. Является ли это возможным?
4 ответа
Решение
Либо передайте саму константу:
$passthis = DEFINEDTESTVAR;
Или получить доступ к нему через constant()
который позволяет вам проверять нулевое значение в случае, если оно не определено (для неопределенных констант, передача константы буквально приводит к строке с именем константы):
$passthis = constant('DEFINEDTESTVAR');
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);
Вы можете получить значение константы из строки с помощью constant(). Он вернет ноль, если именованная константа не найдена.
$passthis = constant('DEFINEDTESTVAR');
callit($passthis);
<?php
DEFINE('DEFINEDTESTVAR', 'Hello World');
function callit($callVar) {
echo "The call is ".$callVar;
}
$passthis = DEFINEDTESTVAR;
callit($passthis);