Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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,这个代码怎么了 <?php namespace DEMO; class Config { const PRICE = $_GET['alim']; } 在类常量定义中只能使用常量表达式。您必须影响构造函数中的Config::price值 <?php namespace DEMO; class Config { private $price; public function __construct()

这个代码怎么了

   <?php
    namespace DEMO;
    
    class Config
    {
        const PRICE = $_GET['alim'];
    }

在类常量定义中只能使用常量表达式。您必须影响构造函数中的
Config::price

<?php
namespace DEMO;

class Config
{
    private $price;
    public function __construct()
    {
        $this->price = $_GET['alim'];
    }
}

因为它是在$\u GET可用之前定义的常量。这不是您在标题中所写的GET方法,而是类常量。请不要这样做。如果您这样做,这意味着您需要在收到的每个web请求上设置
alim
参数,否则此代码将中断。很少从用户输入中声明常量。我建议不要在类中直接使用
$\u GET
,而不是使用正确的DI。@Jeto谢谢,我发布得太快了。