在PHP中如何获得变量名,或者说如何把变量名转成字符串?
PHP中文网
PHP中文网 2017-04-11 09:05:30
[PHP讨论组]

需求是这样的,当前好多的框架在向view端传递变量时都是数组形式,传到view端自动打散成普通变量。
但是在这些变量在传递之前通常不是数组形式出现的,需要拼成数组才能传递,但是拼的时候很是麻烦,需要多写一次key值才可以。因此想着如果能把变量名转成字符串,那么就可以写个方法,把传进来的变量直接转成数组了。

例如:

controller:

$a = 1;
$b = 2;
compact('a', 'b');

view:

<h1>{{$a}}</h1>

但是现在我希望能这样

controller:

$a = 1;
$b = 2;
custom_compact($a, $b);

view:

<h1>{{$a}}</h1>

请问有什么办法能实现吗?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(5)
天蓬老师

$a = 1;
$b = 2;

compact('a', 'b');

伊谢尔伦

http://php.net/manual/zh/func...

PHPz

compact

(PHP 4, PHP 5, PHP 7)
compact — 建立一个数组,包括变量名和它们的值

说明

array compact ( mixed $varname [, mixed $... ] )
创建一个包含变量与其值的数组。

对每个参数,compact() 在当前的符号表中查找该变量名并将它添加到输出的数组中,变量名成为键名而变量的内容成为该键的值。简单说,它做的事和 extract() 正好相反。返回将所有变量添加进去后的数组。

任何没有变量名与之对应的字符串都被略过。

参数

varname
compact() 接受可变的参数数目。每个参数可以是一个包括变量名的字符串或者是一个包含变量名的数组,该数组中还可以包含其它单元内容为变量名的数组, compact() 可以递归处理。

返回值

返回输出的数组,包含了添加的所有变量。

怪我咯
//array_combine — Creates an array by using one array for keys and another for its values
array array_combine ( array $keys , array $values )
PHP中文网

可以使用extract函数,key 值就是变量名

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号