我是 php 新手。
我遇到了一个奇怪的情况,我无法在函数内声明以下内容:
const CONST_Example = 1/192;
我也尝试过:
const CONST_Example = 1;
也不工作。 我希望能够保存常量浮点数,它是算术表达式的结果,例如 1/190 等。
在 PHP 中创建该值作为类常量确实是不可能的。你不能这样声明它:
class Foo {
const CONST_Example = 1/192;
}
因为 PHP 在解析类声明时无法评估表达式。
您也不能在运行时事后将常量添加到类中。
您的选择是:
将其声明为常规运行时定义的常量:
define('CONST_Example', 1/192);
使用下一个最佳浮点表示形式作为文字:
class Foo {
const CONST_Example = 0.005208333333333333;
}
第一个不行,但第二个应该可以。这是一个如何让你的类使用常量的示例
<?php
class Foo {
const CONST_EXAMPLE = 1;
}
第一个不起作用,原因如下:
“该值必须是常量表达式,而不是(例如)变量、属性、数学运算的结果或函数调用。”
与使用define()定义常量相反,使用const关键字定义的常量必须在顶级范围内声明,因为它们是在编译时定义的。 这意味着它们不能在函数、循环、if 语句或 try/catch 块中声明。