博客小子:记录我们对互联网和生活的探索! 注册 | 登陆

php变量名如何包含变量,或者叫php变量的变量

Tags: php, 变量, 变量名

问题简要描述:构造一个类似于$blogguy_0_1_2的变量,其中0是根据传入的参数决定的。

肯定没有说清楚,详细描述:有以下很多数组$blogguy=array("a","b"),$blogguy_0=array("c","d"),$blogguy_0_0=array("e","f"),$blogguy_0_0_0=array("g","h",……)……就是这个规律,现在需要根据从传入的值返回$blogguy_0_0_0的其中一个数,组合一下有可能是$blogguy_0_0_0,也可能是$blogguy_1_1_0,也可能$blogguy_1_2_3,那么$blogguy_1_2_3分别要从$blogguy_1,$blogguy_1_2,$blogguy_1_2_3中分别取值。

php中的变量的变量或者叫变量名包含变量是被允许的,但是需要做特殊处理,这里www.blogguy.cn就粗略的讲解一下,希望抛砖引玉,欢迎拍砖。

简单的数据:

$blogguy_cn_county = array (
 "泉州市",
 "惠安县",
 "德化县",
);

$blogguy_cn_town_0=array(
 "市辖区",
 "blogguy.cn"
);

$blogguy_cn_road_0_0=array(
 "刺桐路",
 "津淮街",
 "温陵路",
 "新华路",
 "西街"
);
这个数据我数写到配置文件中的,现在我传入一个countyid值和一个townid值、一个roadid,要分别取出对应的县乡和街道,本来以为是一个本简单的问题,殊不知百度了好久都没有找到答案,最终只能靠自己琢磨和尝试把问题解决了。

可能很多人知道$$的作用就是变量的变量,两个美元符号就能实现的简单的变量名包含变量的功能。

举例一下:

$blogguy="phper";

$$blogguy="www.blogguy.cn";     //这句话的意思是定义了$phper="www.blogguy.cn";  这个就是变量名包含变量的最直接的例子。

放到我们自己的案例中来,我们需要引入临时变量,脚本如下

$countyname=$blogguy_cn_county[$countyid];
$temp='blogguy_cn_town_'.$countyid;
$temp=$$temp;
$townname=$temp[$townid];
$temp='blogguy_cn_road_'.$countyid.'_'.$townid;
$temp=$$temp;
$roadname=$temp[$roadid];

 

看上去可能有点复杂,其实两次使用临时变量的原因是后面要使用数组。

雕虫小技,仅仅为了这颗越来越不灵光的脑子

Tags: php, 变量, 变量名

« 上一篇:ucenter的uc_user_synlogin没有返回值的问题 | 下一篇:javascript的省市县乡村街道ajax联动 »

只显示10条记录相关文章

Trackbacks

点击获得Trackback地址,Encode: UTF-8

发表评论

评论内容 (必填):