gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 20:41:05 25 4
gpt4 key购买 nike

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

C 语法:

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

PHP 语法:

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

据我所知,问题是 PHP 不接受以非字母字符开头的常量值。有什么解决方法吗?

最佳答案

当我很久以前使用 c 时,我记得 const 是与范围相关的定义,一个命名的内存分配 - 所以这取决于它的定义位置,就像在 a 内部一样函数或全局范围等,虽然它的值不能直接改变,但仍然可以使用它的内存地址来改变。
这无法在 php 中实现。

PHP 中的常量更像是 C 中的 #define 所做的事情(除非你不能在 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() 函数,您显然无法调用此类常量

关于php - 常量 [C/PHP] - 差异和比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18666608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com