const PHP 解析错误

Shn*_*son 0 php

// define('DOCROOT', realpath(dirname(__DIR__)));
// good

const DOCROOT = realpath(dirname(__DIR__));
// PHP Parse error:  syntax error, unexpected '(', expecting ',' or ';' in
Run Code Online (Sandbox Code Playgroud)

为什么会出错?

Ali*_*lah 5

在 PHP 中可以通过两种方式定义常量,

  1. 使用const关键字

    您不能以这种方式将function结果甚至变量分配给常量。常量的值(以这种方式定义)必须是一个固定值,如整数或字符串。

  2. 使用定义()

    通过这种方式,您可以将任何值或变量或任何函数的结果分配给您的常量。

重要说明: define()在类定义之外工作。

例子

$var = "String"; 
const CONSTANT = $string;                        //wrong
const CONSTANT = substr($var,2);                 //wrong
const CONSTANT = "A custom variable";            //correct
const CONSTANT = 2547;                           //correct
define("CONSTANT", "A custom variable");         //correct
define("CONSTANT", 2547);                        //correct
define("CONSTANT", $var);                        //correct
define("CONSTANT", str_replace("S","P", $var));  //correct

class Constants
{
  define('MIN_VALUE', '0.0');  //wrong - Works OUTSIDE of a class definition.
}
Run Code Online (Sandbox Code Playgroud)