谁能告诉我这里有什么问题?我定义了一个名为' VALUE'它的价值是' STAR'然后我创建了一个变量$var = 10;
,我在这一行中使用了常量函数:
$data = constant ('VALUE'. $var);
我决定回应该计划
echo VALUE10;
我遇到了这个错误:
代码:
<?php
define ('VALUE' , 'STAR');
$var = 10;
$data = constant ('VALUE'. $var);
echo VALUE10;
?>
答案 0 :(得分:4)
常量函数用于获取已定义常量的值。要定义常量,请使用define函数。
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
常量()是不必要的,你必须编写的是常量名称:
define("TEST_CONSTANT", 24, false);
echo TEST_CONSTANT;
如果要检查是否已定义常量,请使用defined()
if(defined("TEST_CONSTANT")) {
// Do stuff
}
希望这是您正在寻找的答案。
安德烈指出,当你不知道常数的确切名称时,常数函数很有用:
define("TEST_" . $value, "stuff");
echo constant("TEST_" . $value);
谢谢你。
答案 1 :(得分:1)
那里有些错误。 首先,'常量'函数不用于创建constansts,而只是用于获取现有常量的值:read the official documentation
其次,你不应该在常量周围使用引号,否则它们只是字符串。
第三,你的逻辑错了。
我认为你试图这样做:
<?php
define('VALUE', 'STAR');
$var = 10;
define(VALUE . $var, 'some value');
$data = constant(VALUE . $var);
echo $data;
echo STAR10; // same as above
?>