php7.0版本以后支持定义常量的数组了,但php 7.0之前的版本还是不支持的。需要使用一些非常规的手段来实现。下面就说几个低版本的php里面 define 定义常量数组的方法!

php 7.0 版本后定义常量数组的方法

php 7.0版本后可以直接定义常量数组,写法也非常的简单。

例1:

//定义一个常量的数组
define('language', ['c++', 'php', 'jsp', 'c#']);
echo language[2]; //输出 jsp

例2:

define('code', array('c++', 'php', 'jsp', 'c#'));
echo code[1]; //输出 php

注:上面两个高于php7.0版本定义常量数组的示例是等价的,只是写法不同而已!

php 低版本定义常量数组的方法

php 7.0之前的版本是不支持定义常量数组的,但如果一定要用到该如何做呢?网上查到几个折中的法子,分享一下!

示例1:

//将数组转成 json 字符串定义到常量中
define('language',json_encode(array('c++','php','jsp','c#')));
//调用常量将 json 再转回数组
$arr = json_decode(language,true);
var_dump($arr);

示例2:

//将数组序列化成字符串存到常量中
define('language',serialize(array('c++','php','jsp','c#')));
//反序列化
$arr = unserialize(language);
var_dump($arr);

示例3:

define('langage',"return array('php','feiniaomy.com','c#','c++');");
$arr = eval(langage);
var_dump($arr);

注:不推荐使用此方法,eval() 是个危险的函数!