我正在将一个C代码重写为PHP(或者更确切地说是尝试),但我偶然发现了一个不断的声明:
C语法:
const char* translation = "5z]&gqtyfr$";
PHP语法:
define('translation','5z]&gqtyfr$');
问题是,就我所知,PHP不接受以非alpha字符开头的常量值。任何解决方法?
答案 0 :(得分:0)
在我很久以前的工作中,我记得 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;
以下是"static const" vs "#define" vs "enum"
的更多内容使用php define()
,您可以使用任何类型的名称创建常量(只要之前未定义)
define(' not a good name for constant!', 3);
echo constant(' not a good name for constant!'); // echoes 3
在执行此操作时,您显然无法在不使用constant()
函数