Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的常量函数_Php - Fatal编程技术网

PHP中的常量函数

PHP中的常量函数,php,Php,谁能告诉我这里怎么了?我定义了一个名为“VALUE”的常量,它的值是“STAR”,然后我创建了一个变量$var=10我在这行中使用了常量函数: $data = constant ('VALUE'. $var); 我决定响应这个节目 echo VALUE10; 我遇到了这样的错误: 守则: <?php define ('VALUE' , 'STAR'); $var = 10; $data = constant ('VALUE'. $var); echo VALUE10; ?>

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

$data = constant ('VALUE'. $var);
我决定响应这个节目

echo VALUE10;
我遇到了这样的错误:

守则:

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

这里有一些错误。 首先,“常量”函数不用于创建常量,而仅用于获取现有常量的值:

其次,不应该在常量周围使用引号,否则它们将只是字符串

第三,你的逻辑是错误的

我认为你试图这样做:

<?php
define('VALUE', 'STAR');
$var = 10;
define(VALUE . $var, 'some value');
$data = constant(VALUE . $var);
echo $data;
echo STAR10; // same as above
?>

常量函数用于获取已定义常量的值。要定义常数,请使用define函数

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
常量()是不必要的,只需编写常量名称:

define("TEST_CONSTANT", 24, false);
echo TEST_CONSTANT;
如果要检查是否定义了常量,请使用defined()

希望这就是你想要的答案

编辑: Andre指出,当您不知道常数的确切名称时,常数函数非常有用:

define("TEST_" . $value, "stuff");
echo constant("TEST_" . $value);

谢谢andre。

您提供的代码不是触发错误的代码。
常量
返回已定义常量的值。它不做任何其他的事情。那么错误的原因是什么呢?我不是被迫这样做的,但这是我正在阅读的书中的一个例子。当你不知道常量的确切名称时,“constant()”函数非常好。定义('MY_CONSTANT.$some_variable,$some_value);常量('MY_constant.$some_variable);
define("TEST_" . $value, "stuff");
echo constant("TEST_" . $value);