php 5.6 const,php版本引起的const问题

刚刚遇到一个问题,类中定义了一个常量:

const USER = ['aa', 'bb', 'cc'];

在类中的静态函数中调用以上常量不会出错。网站中所有的网页均能正常打开。

而当push到线上后,网站网页都不能正常打开,查看错误日志发现报错:

Arrays are not allowed in class constants

针对该报错,百度查到问题:

6ca27b421a9de112a284843ba5480d31.png

改正错误后push到线上,一切恢复正常。

但是很纳闷为什么本地不报错,在调试一番之后,猜测是php版本问题,于是采用如下函数查看本地和线上php版本:

phpversion()

查看得到版本号,本地为5.6.12,线上为5.5.12,百度,发现5.6版本在常量上有增强。

得出结论:1、5.6的版本常量可以为array,5.6之前的版本常量不可以为array;

2、本地和线上不同状态,是因为php版本不同引起的。

PHP 中 define() 和 const 定义常量时的区别

自 PHP 5.3.0 起,有两种方式定义常量,使用 const 关键字或者 define() 函数:   1 2 const FOO = 'BAR'; define('FOO', 'BAR'); 这 ...

尽可能使用 const

前言 const 关键字是常量修辞符,如果要告知编译器某个变量在程序中不会发生改变,则可将其声明为 const. 但,对 const 关键字的认识不能仅仅停留在这一层 - 它提供了很多更强大的功能. ...

C++ 中的 const 详解

作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4235721.html 1.为什么使用 const int 而不使用 #define 在使用# ...

const和define的使用区别

在PHP中(PHP 4及以后),我们可以使用函数define()来定义常量,例如: <?php define('PI',3.14159);  //定义一个名为PI的常量 echo PI;     ...

php中const与define的区别

1 版本差异: const 要求php的版本>5.3.0 define 可以兼容php4,php5 等版本 2 定义的位置区别: const关键字定义的常量是在编译时定义的,因此const关键字 ...

PHP中const和define&lpar;&rpar;定义常量的细节区别

转自:http://www.365mini.com/page/difference-of-define-and-const.htm 众所周知,在PHP中(php 4及以后),我们可以使用函数defin ...

【OOP】C&plus;&plus; const成员函数

预备知识 1.代码转换分析技巧 在早期某些编译器会将C++代码翻译为C代码,然后使用C编译器生成可执行文件.其中翻译的一个转化就是:将this指针显式添加到成员函数的第一个参数位置上,并在成员函数调用 ...

C&plus;&plus;总结:C&plus;&plus;中的const和constexpr

C++中的const可用于修饰变量.函数,且在不同的地方有着不同的含义,现总结如下. const的语义 C++中的const的目的是通过编译器来保证对象的常量性,强制编译器将所有可能违背const对象 ...

《Effective C&plus;&plus;》读书笔记 条款03 尽可能使用const 使代码更加健壮

如果你对const足够了解,只需记住以下结论即可: 将某些东西声明为const可帮助编译器侦测出错误用法,const可被施加于任何作用于内的对象.函数参数.函数返回类型.成员函数本体. 编译器强制实施 ...

随机推荐

你可能不知道的陷阱&comma; IEnumerable接口

1.  IEnumerable 与  IEnumerator IEnumerable枚举器接口的重要性,说一万句话都不过分.几乎所有集合都实现了这个接口,Linq的核心也依赖于这个万能的接口.C语言的 ...

多线程编程2 - NSOperation

一.NSOperation 1.简介 NSOperation实例封装了需要执行的操作和执行操作所需的数据,并且能够以并发或非并发的方式执行这个操作. NSOperation本身是抽象基类,因此必须使用 ...

【转】Unity 之 移动设备的触控操作

http://blog.csdn.net/anyuanlzh/article/details/18367941 这篇博文将简单的记录,如何用unity处理在移动设备上的触控操作.    iOS和And ...

&lbrack;LeetCode&rsqb;题解(python):063-Unique path II

题目来源 https://leetcode.com/problems/unique-paths-ii/ Follow up for "Unique Paths": Now cons ...

SqlServer Change Data Capture(CDC)数据变更捕获

最近在使用SqlServer2008r2数据库做系统的时候,在某些重要的.经常涉及到修改的表上,想加上一些恢复机制,一开始想找找看看有没有类似Oracle数据库闪回那样的功能,后来发现CDC的功能可以 ...

PHP 文件上传功能

Matlab 将RGB 图像转换成YCrCb图像

>> im = imread('trees.jpg');>> imshow(im)>> ycrcb_trees = rgb2ycbcr(im);>> f ...

Spring3&lpar;一&rpar; 控制反转(IoC)和依赖注入(DI)

几个常用框架之间的关系 1       spring框架概述 1.1   什么是spring Spring是一个开源.轻量级的Java 开发框架.框架的主要优势之一就是其分层架构,分层架构允许使用者选 ...

Java开发人员必须掌握的Linux命令(二)

子曰:"工欲善其事,必先利其器." 学习应该是快乐的,在这个乐园中我努力让自己能用简洁易懂(搞笑有趣)的表达来讲解让知识或者技术,让学习之旅充满乐趣,这就是写博文的初心. 本篇的旅 ...

Log4Net记录到数据库

WinForm下Log4Net的配置 Log4Net 组件下载地址 https://download.csdn.net/download/zgx123zgx123zg/10470986 configS ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值