php中文变量名,php 中怎么取得变量名

本帖最后由 u010200485 于 2014-03-11 12:27:23 编辑 在下php小白,请教两个问题:

1.怎样取得变量的名字?

例如:

$var_name = 'var_value';

Q: 怎样取得 ‘var_name’?

2.可能跟第一个问题类似,

例如:

function func_name($argument_name) {

$code;

Q:怎样在函数内取得 ‘parameter_name'?

}

$parameter_name = 'parameter_value';

func_name($parameter_name);

问题可能有点绕但是是我现在碰到的问题,希望可以得到解答,先谢过了。

------解决方案--------------------

$var_name = 'var_value';

function get_variable_name(&$var, $scope = NULL) {

if (NULL == $scope) {

$scope = $GLOBALS;

}

$tmp = $var;

$var = "tmp_exists_" . mt_rand();

$name = array_search($var, $scope, TRUE);

$var = $tmp;

return $name;

}

echo get_variable_name($var_name);//var_name

取变量名做什么?这是小白为题么?

------解决方案--------------------

忘了贴地址

http://stackoverflow.com/questions/255312/how-to-get-a-variable-name-as-a-string-in-php

------解决方案--------------------

先有鸡还是先有蛋的问题。

第一个问题 1楼 已经解答。

$var = 'tmp_value_'.mt_rand();

$name = array_search($var, $scope, true);

因为是根据值找已定义的变量,会存在相同变量值的情况。以上两句的作用就是解决这个问题的。

解决方法:

1.先将原来变量的值用一个临时变量保存

2.然后把变量值修改为唯一的值(就是不可能有重复的值),再search,这就会找到唯一的变量名。

3.把临时变量的值还原到原来变量

因为是用&$var,地址引用,因此修改变量值后,都可以找到

第二个问题,要做到的话,$argument_name只能用地址引用,例如这样就可以获取到 parameter_name

function func_name(&$argument_name) {

echo get_variable_name($argument_name);

}

$parameter_name = 'parameter_value';

func_name($parameter_name);

function get_variable_name(&$var, $scope=null){

$scope = $scope==null? $GLOBALS : $scope;

$tmp = $var;

$var = 'tmp_value_'.mt_rand();

$name = array_search($var, $scope, true);

$var = $tmp;

return $name;

}

相关文章

相关视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值