问题简要描述:构造一个类似于$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];
看上去可能有点复杂,其实两次使用临时变量的原因是后面要使用数组。
雕虫小技,仅仅为了这颗越来越不灵光的脑子



