常数[C / PHP] - 差异和比较

时间:2013-09-06 21:07:11

标签: php c constants

我正在将一个C代码重写为PHP(或者更确切地说是尝试),但我偶然发现了一个不断的声明:

C语法:

const char* translation = "5z]&gqtyfr$";

PHP语法:

define('translation','5z]&gqtyfr$');

问题是,就我所知,PHP不接受以非alpha字符开头的常量值。任何解决方法?

1 个答案:

答案 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()函数

的情况下调用此类常量