我正在将 C 代码重写为 PHP(或者更确切地说是尝试),但我偶然发现了一个常量声明:
C 语法:
const char* translation = "5z]&gqtyfr$";
PHP 语法:
define('translation','5z]&gqtyfr$');
问题是据我所知,PHP 不接受以非字母字符开头的常量值。任何解决方法?
当我很久以前使用 ca 时,我记得const
与范围相关的定义,一个命名的内存分配- 所以它取决于它在函数内部或全局范围等中的定义位置,虽然它的值不能直接更改,但它可以仍然使用其内存地址进行更改。
这不能在 php 中实现。
PHP 中的常量更多或类似于#define
C 中的常量(除非您不能在 PHP 中创建宏)
#define translation = "5z]&gqtyfr$";
相当于 php define('translation','5z]&gqtyfr$')
。
php中的类常量与范围相关,其工作方式与大多数支持 OOP 的类 C 语言相同。
class MyClass {
const CONST_VALUE = 5;
}
echo MyClass::CONST_VALUE;
这是关于“静态常量”与“#define”与“枚举”的更多信息
使用 php define()
,您可以使用任何名称创建常量(只要之前未定义)
define(' not a good name for constant!', 3);
echo constant(' not a good name for constant!'); // echoes 3
constant()
在这样做的同时,你显然不能在不使用函数的情况下调用那种常量