如何在类函数中声明const

问题描述 投票:0回答:3

我是 php 新手。
我遇到了一个奇怪的情况,我无法在函数内声明以下内容:

const CONST_Example = 1/192;

我也尝试过:

const CONST_Example  = 1;    

也不工作。 我希望能够保存常量浮点数,它是算术表达式的结果,例如 1/190 等。

php constants
3个回答
1
投票

在 PHP 中创建该值作为类常量确实是不可能的。你不能这样声明它:

class Foo {

    const CONST_Example = 1/192;

}

因为 PHP 在解析类声明时无法评估表达式。
您也不能在运行时事后将常量添加到类中。

您的选择是:

  1. 将其声明为常规运行时定义的常量:

    define('CONST_Example', 1/192);
    
  2. 使用下一个最佳浮点表示形式作为文字:

    class Foo {
    
        const CONST_Example = 0.005208333333333333;
    
    }
    

0
投票

第一个不行,但第二个应该可以。这是一个如何让你的类使用常量的示例

<?php
class Foo {
    const CONST_EXAMPLE = 1;
}

第一个不起作用,原因如下:

“该值必须是常量表达式,而不是(例如)变量、属性、数学运算的结果或函数调用。”

来源:http://php.net/manual/en/language.oop5.constants.php


0
投票

与使用define()定义常量相反,使用const关键字定义的常量必须在顶级范围内声明,因为它们是在编译时定义的。 这意味着它们不能在函数、循环、if 语句或 try/catch 块中声明

https://www.php.net/manual/en/language.constants.syntax.php

© www.soinside.com 2019 - 2024. All rights reserved.