PHP中的常量函数

时间:2016-07-22 04:02:43

标签: php

谁能告诉我这里有什么问题?我定义了一个名为' VALUE'它的价值是' STAR'然后我创建了一个变量$var = 10;,我在这一行中使用了常量函数:

$data = constant ('VALUE'. $var);

我决定回应该计划

echo VALUE10;

我遇到了这个错误:

here

代码:

<?php
define ('VALUE' , 'STAR');
$var = 10;
$data = constant ('VALUE'. $var);
echo VALUE10;
?>

2 个答案:

答案 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
?>