一个有意思的函数传参方法

最近在做的项目,虽然有很多前端的东西,现在不喜欢搞前端,觉得特麻烦,累。不如后台程序部分好玩,直接写代码还是很有意思的。
说实话,这么多年始终对于javascript属于入门汉的状态,主要是觉得javascript相对与服务端的PHP来说,不如PHP直接跟数据库打交道有意思。
不过,最近接触了好多jQuery,突然发现javascript原来不需要了解太多了,哈哈。jQuery真的是个好东西。
在使用和制作jQuery扩展的时候,发现jQuery有一个很有趣的函数传参办法,那就是直接利用数组或者已经格式化了的json字符串,这样做的好处显而易见——不必要记住函数参数的具体顺序,哪个在先哪个在后都无所谓。
现在懒得学习了,PHP手册也仅仅找需要的,加之英语实在不太好,所以在我的印象里,似乎php没有类似的方法(当然PHP类的那个不算在内)
晚上无聊的时候,尝试写了一个乱弹代码,觉得还是挺好玩的。
<?php
function call_function_param_arr($func_param_arr){
$var1='val1';
$var2='val2';
$var3='val3';
$var4='val4';
$var5='val5';
$var6='val6';
$var7='val7';
$var8='val8';
$var9='val9';
extract($func_param_arr,EXTR_IF_EXISTS);
for ( $i=1;$i<=9;$i++ ) {
$tmp = 'var'.$i;
echo "var{$i} = {$$tmp}<br />";
}
}
function call_function_param_json($func_param_json){
$var1='val1';
$var2='val2';
$var3='val3';
$var4='val4';
$var5='val5';
$var6='val6';
$var7='val7';
$var8='val8';
$var9='val9';
extract(json_decode($func_param_json,true),EXTR_IF_EXISTS);
for ( $i=1;$i<=9;$i++ ) {
$tmp = 'var'.$i;
echo "var{$i} = {$$tmp}<br />";
}
}
call_function_param_arr(array('var9'=>'New9','var3'=>'New3','var1'=>'New1','var8'=>'New8'));

echo "<hr />";

call_function_param_json('{"var9":"New9","var3":"New3","var1":"New1","var8":"New8"}');
?>

执行一下,看看发生了什么?

var1 = New1
var2 = val2
var3 = New3
var4 = val4
var5 = val5
var6 = val6
var7 = val7
var8 = New8
var9 = New9


var1 = New1
var2 = val2
var3 = New3
var4 = val4
var5 = val5
var6 = val6
var7 = val7
var8 = New8
var9 = New9

传递参数的时候,你可以不必要再去考虑各个参数的顺序了,只需要记住参数的变量名就可以了。

纯粹是乱弹,或许PHP其实有这样的函数(之前其实已经干过很多类似的事情了,自己写了原本PHP内置已经有了的函数,汗),谁知道PHP类似的函数是什么麻烦告诉一下哦~~

PS:博客没装代码高亮插件,插入代码后格式好难看:(我真的是代码洁癖,忍了,改天勤快了,装个代码高亮显示之类的插件……

标签:jQuery, PHP, 函数

添加一条评论 »本文共 2 条评论

  1. 最讨厌写代码,不是那个料,完全没那细胞

    • 呵呵,写代码会有乐趣的。当然这个的确跟个人喜好有关。如果不喜欢怎么弄都是不喜欢,哈哈。

Deepseath Modified from Green Hope Theme · Proudly powered by WordPress · 津ICP备09005418号-1  津公网安备 12010302001005号