特性引发的问题

栏目: PHP · 发布时间: 6年前

内容简介:搭建tp5的时候,出现了一个非常奇怪的问题,服务器一直500但是就是没有办法发现对应的问题,直到后来打开了nginx的error日志,出现了找到了对应的行数
‘About PHP’

thinkphp5

搭建tp5的时候,出现了一个非常奇怪的问题,服务器一直500

但是就是没有办法发现对应的问题,直到后来打开了nginx的error日志,出现了

\nFatal error: Arrays are not allowed in class constants in /mnt/putao/api/xin.36qq.com/vendor/mrmiao/think-interface-encryption/src/RSACrypt.php on line 54

找到了对应的行数

const exception_response = [
        'miss_config'=>['code'=>100,'message'=>'RSA config missing'],//缺少配置文件
        'request_parse_fail'=>['code'=>101,'message'=>'Request param parsing exception'],//请求参数解析失败
        'request_method_error'=>['code'=>102,'message'=>'Request method error'],//请求方式错误
        'request_param_num_error'=>['code'=>103,'message'=>'Number of request parameters and rules inconsistent'],//请求参数数量与规则不符
        'request_param_error'=>['code'=>104,'message'=>'Error params:'],//错误的请求参数
    ];

后来找了很多的问答,发现这个特性常量定义,对于数组而言,php>=5.6才会有这个特性,否则无法使用

虽然版本是5.6但是hhvm是不支持的,所以我用了土方法

把常量改成了变量,用this去调用,也算是解决了这个问题

不过想想还是后怕,因为常量与变量区别很大,光光有大影响的区别

    1. 常量前面没有美元符号($)
    1. 常量只能用 define() 函数定义,而不能通过赋值语句
    1. 常量可以不用理会变量范围的规则而在任何地方定义和访问 (这点影响非常大) 常量的作用域:常量无论在那定义,都可以直接调用,没有作用域。 变量的作用域:变量定义在那个范围就在那个范围有效,如函数中定义的变量就只在函数中有效。
    1. 常量一旦定义就不能被重新定义或者取消定义
    1. 常量的值只能是标量(5.6以后可以为数组)

以上所述就是小编给大家介绍的《特性引发的问题》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人工智能+:AI与IA如何重塑未来

人工智能+:AI与IA如何重塑未来

[美]韩德尔·琼斯(Handel Jones) [中]张臣雄 / 机械工业出版社 / 2018-10 / 55.00

当深度学习模型引发了全世界对人工智能的再次关注时,人工智能迎来第三次高速增长,人工智能(AI)、增强现实(AR)和虚拟现实(VR)正把人类带向新的“智能增强时代”(IA),我们将在不知不觉中接纳机器智能。 针对人类社会长期存在的众多复杂的动态的难题,人机融合智能将会提供全新的解决方案,谷歌、Facebook、微软、亚马逊、腾讯、阿里巴巴、百度等平台巨头纷纷斥千亿巨资布局人工智能的尖端技术;智......一起来看看 《人工智能+:AI与IA如何重塑未来》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具