加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php魔术常量由java转换回去的本质区别是什么?

发布时间:2023-03-01 09:30:52 所属栏目:PHP教程 来源:未知
导读: php魔术常量,主要是一些在传统命名方式下不存在的一些东西,在php中正规定义是用变量来表示,类似于c语言里面用全局变量,但是可以对该变量赋值的。比如自动全局变量的total和spendid和其

php魔术常量,主要是一些在传统命名方式下不存在的一些东西,在php中正规定义是用变量来表示,类似于c语言里面用全局变量,但是可以对该变量赋值的。比如自动全局变量的total和spendid和其他一些高级运算,其他php就用type定义,类似于普通变量,php里的tostring方法可以通过使用变量名,强制转成php格式,同时兼容c语言中的tobytearray等,php魔术常量可以理解为在php代码本身和编译机制上修改的东西,更像是一种逻辑缺陷。

不属于加密算法。php对于常量的修改是非常快的,比如通过转换实现将某个常量转化为具体的c/c++类型字符,执行完可以被机器解析。php魔术常量在本质上基本等同于c、java里的__proto__或者rust里的隐式委派(implicitdependency)。区别就是这些语言中由编译器/c转换回去的变量PHP魔术常量,c中的__proto__函数的输出是机器字符串。

java中的__proto__类似于type、ptr_map这些类似于hashmap的sha-256(sha-1)或者hashtable的sha-512(sha-512)之类的。而php魔术常量由java转换回去的就不是机器字符串了,就是一堆伪php代码,其实和一个其他php魔术常量没什么本质区别。

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!