php如何定义数组常量

是这样吗?
<?php

define(‘BEST_PHPER‘,array(‘name‘=>‘巩文‘,‘address‘=>‘china‘));

My God,明确告诉你不可以;原因是Warning: Constants may only evaluate to scalar values。

也就是说define常量的值;仅允许标量和 null。标量的类型是 integer, float,string 或者 boolean。所以数组是不允许的

通常做法是采用下面的方法去间接地去定义“数组常量”

方法一:采用eval()函数
<?php
    define(‘BEST_PHPER‘,"return array(‘name‘=>‘巩文‘,‘address‘=>‘china‘);");
    $BEST_PHPER=eval(BEST_PHPER);

var_dump($BEST_PHPER);

方法二:采用json_encode()函数
<?php
    define(‘BEST_PHPER‘,json_encode(array(‘name‘=>‘巩文‘,‘address‘=>‘china‘)));
    $BEST_PHPER=json_decode(BEST_PHPER,true);

var_dump($BEST_PHPER);

方法三:采用serialize()函数
<?php
    define(‘BEST_PHPER‘,serialize(array(‘name‘=>‘巩文‘,‘address‘=>‘china‘)));
    $BEST_PHPER=unserialize(BEST_PHPER);
    var_dump($BEST_PHPER);

时间: 2024-10-12 16:12:49

php如何定义数组常量的相关文章

使用typedef语句定义数组类型

使用typedef语句定义数组类型     1. 一维数组类型的定义格式 typedef <元素类型关键字><数组类型名>[<常量表达式>]; 例如: (1) typedef int vector[10]; (2) typedef char strings[80]; (3) typedef short int array[N]; 第一条语句定义了一个元素类型为int,含有10个元素的数组类型vector,若不使用typedef保留字,则就变成了数组定义,它只定义了一个元

动态定义数组?.xml

pre{ line-height:1; color:#3c3c3c; background-color:#d2c39b; font-size:16px;}.sysFunc{color:#627cf6;font-style:italic;font-weight:bold;} .selfFuc{color:#800080;} .bool{color:#d2576f;} .condition{color:#000080;font-weight:bold;} .key{color:#000080;} .

JavaScript定义数组

JavaScript定义数组有两种方式: 1.通过Arrary()构造函数定义数组. 2.通过直接赋值法定义数组. Arrary()构造函数定义数组 格式一: var name = new Array(num); name[0] = 元素1; …… name[num-1] = 元素num; 格式二: var name = new Array(); name[0] = 元素1; name[0] = 元素2; name[0] = 元素3; …… 格式三: var name = new Array(元

loadrunner中定义数组

loadrunner 中数组的定义 loadrunner 中数组的定义: lr_save_string("www.google.com","website_1"); lr_save_string("www.baidu.com","website_2"); lr_save_string("www.163.com","website_3"); lr_save_string("www

定义Map常量,List常量

一般的方式的使用静态代码块.比如: public final static Map map = new HashMap(); static { map.put("key1", "value1"); map.put("key2", "value2"); } 下面为一种简单定义Map常量的方式 public final static Map<String, Fragment> NAV_ITEM_ADPTER = new

php中定义数组的方法

1.PHP定义数组的格式 数组名=array(); 如:$aa=array();//这样就定义了一个数组, 之后给元素赋值: $aa[0]="9016"; $aa[1]="9017"; $aa[2]="9018"; 2.PHP输出数组的方法: foreach($aa as $val) { echo$val; } 也可以在定义数组时直接赋值 $aa=array(0=>"9016",1=>"9017"

C/C++中define定义的常量与const常量

常量是在程序中不能更改的量,在C/C++中有两种方式定义常量,一种是利用define宏定义的方式,一种是C++中新提出来的const型常变量,下面主要讨论它们之间的相关问题: define定义的常量: define是预处理指令的一种,它用来定义宏,宏只是一个简单的替换,将宏变量所对应的值替换,如下面的代码: #define NUM 2 int main() { printf("%d", NUM); } 编译器在编译时处理的并不是这样的代码,编译器会首先处理预处理指令,根据预处理指令生成

C#中定义数组--字符串及数组操作

一.一维: int[] numbers = new int[]{1,2,3,4,5,6}; //不定长 int[] numbers = new int[3]{1,2,3};//定长 二.多维 int[,] numbers = new int[,]{{1,2,3},{1,2,3}}; //不定长 int[,] numbers = new int[2,2]{{1,2},{1,2}}; //定长 三.例子 A:int[] mf1=new int[6]; //注意初始化数组的范围,或者指定初值; //包

[转]宏定义和常量定义的区别

1.效果-<高质量C++/C编程指南> C++ 语言可以用const 来定义常量,也可以用#define 来定义常量.但是前者比后者有更多的优点:(1) const 常量有数据类型,而宏常量没有数据类型.编译器可以对前者进行类型安全检查.而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应).(2) 有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试.规则5-2-1:在C++ 程序中只使用const 常量而不使用宏常量,即cons