php动态拼接变量名,可变变量,动态变量,使用花括号,使用两个$符
php动态拼接变量名,可变变量,动态变量,使用花括号,使用两个$符
方式一:使用花括号,前缀部分不需要用单引号
$nums10 = 100;
$xxx*${bcount.$nums10}['m54']/$nums10
方式二:使用两个$符,先给key赋值最终的变量名称,后面才当成真正的变量使用。
$nkey = 'bcount'.$nums10;
$xxx*$$nkey['m54']/$nums10
=================
PHP可以动态地创建一个变量名。如:使用与数据库查询得到的字段名称一致的变量名。
使用PHP中“可变变量”的语法:在一个其值为你想作为变量名称的变量前面加一个$:
$animal = 'turtles';
$turtles = 103;
print $$animal;
在PHP中如果在一个变量名称前面放两个美元($)符号,PHP就会废弃右面的变量,而取其值,然后,将该值作为“真正”的变量名称。例如:
$animal = 'turtles';
$turtles = 1024;
print $$animal;
这段代码会输出1024。因为$animal = ’turtles',$$animal 就是$turtles,而$turtles等于1024。
如果使用大括号,还能够构造出用于表示变量名的更复杂的表达式:
$stooges = array('Moe','Larry','Curly');
$stooge_moe = 'Moses Horwitz';
$stooge_larry = 'Louis Feinberg';
$stooge_curly = 'Jerome Horwitz';
foreach ($stooges as $s) {
print "$s's real name was ${'stooge_'.strtolower($s)}.\n";
}
Moe's real name was Moses Horwitz.
Larry's real name was Louis Feinberg.
Curly's real name was Jerome Horwitz.
PHP会求得位于大括号之间的表达式的值,并将这个值作为一个变量名。大括号中的表达式甚至还可以调用函数,比如上面代码中的strtolower()。
在迭代类似的变量名称时,可变变量也很有用。假如你想要查询一个数据库表,其字段名分别是title_1, title_2等。如果你想要检查一个标题($title)是否与其中一个字段的值匹配,那么最简单的方式就是像下面这样进行循环遍历:
for ($i = 1; $i <= $n; $i++) {
$t = "title_$i";
if ($title == $$t) { /* match */ }
}
当然,如果把这些值保存到一个数组中可能会更直观,不过,要是你在维护一段使用了这种技术的老代码(即不能修改),可变变量就很有用了。
大括号语法在理清有关数组元素的歧义时是必要的。可变变量$$donkeys[12]可能有两种含义。第一种含义是“拿$donkeys数组中第12元素的值作为一个变量名”,要想明确表示这种含义,应该写成:${$donkeys[12]}。第二种含义是“用标量$donkeys的值作为一个数组名称,并找到该数组中的第12元素”,若想明确表示这种含义,应该写成:${$donkeys}[12]。
HP中动态创建变量名语法并不局限于两个美元符号,可以使用三个甚至更多个。然而,在实践中很少出现有必要使用超过两个间隔层次的情况。
php动态拼接变量名,可变变量,动态变量,使用花括号,使用两个$符的更多相关文章
- c++中变量、变量名、变量地址、指针、引用等含义
首先了解内存,内存就是一排房间,编号从0开始,0,1,2,3,4,5...... 房间里面一定要住人,新人住进去了,原来的人就走了:不管你住不住,里面都有人. 编号就是地址.里面的人就是内容,为了我们 ...
- js中定义用字符串拼接起来的变量名的变量
用对象的形式 你的问题可以通过js的对象实现 var ovar = {}; for(var i=0;i<10;i++){ ovar['var_'+i]=''; } 3用数组的形式 var arr ...
- 彻底解决Eclipse自动补全变量名及变量名后面追加类型名
彻底解决Eclipse自动补全变量名问题的方法步骤 发布于 2014-11-04 14:53 已被阅读 31613159 次 大家使用eclipse或者MyEclipse敲代码的时候,是不是都被这 ...
- Eclipse中java文件选中变量名,相同变量都变色显示 .
第一步设置高亮显示的颜色: Window-->preferences-->General-->Editors-->Text Editors-->Annotations-- ...
- php $$可变变量理解
//在变量前面加上两个$$,如$$name,这表示可变变量,可以动态的设置和使用,先设置一个普通变量,一个可变变量会获取了一个普通变量的值作为这个可变变量的变量名 $a = 'b'; $b = 'c' ...
- less的学习(@变量名)
引自:https://www.cnblogs.com/starof/p/5226739.html Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数 ...
- PHP中可变变量到底有什么用?
转自:http://blog.csdn.net/engine_1124/article/details/8660291 什么是可变变量? PHP提供了一种其他类型的变量——可变变量.可变变量允许我们动 ...
- PHP内置常量,和可变变量,常量的定义
关键常量 可变变量----变量名是变量的变量 常量的定义
- 5)PHP,可变变量
所谓可变变量,就是一个变量的名,又是一个变量. 可变变量的语法是php的很特殊的语法——其他语言中少见. $v1 = “abc”; //这是一个字符串变量,其内容是字符串“abc” $abc = ; ...
随机推荐
- SwiftUI学习(二)
教程 2 - Building Lists and Navigation Section 4 - Step 2: 静态 List var body: some View { List { Landma ...
- 记录TortoiseGit=>https请求/ssh请求配置
ssh C:\Program Files\Git\usr\bin\ssh.exe https C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
- 利用python去实现数学基本值的计算
def get_nums(): nums = []#获取列表 num = input('请输入数字:').strip() while num != '': nums.append(num)#添加数字 ...
- 学习:SpringCloud(一)
微服务: 微服务是一种架构模式或者一种架构风格,提倡将单一应用程序划分成一组小的服务==独立部署==,服务之间相互配合.相互协调,每个服务运行于自己的==进程==中. 服务与服务间采用轻量级通讯,如H ...
- [日常] gocron源码阅读-使用go mod管理依赖源码启动gocron
从 Go1.11 开始,golang 官方支持了新的依赖管理工具go modgo mod download: 下载依赖的 module 到本地 cachego mod edit: 编辑 go.modg ...
- CodeForces - 1251C (思维+贪心+归并排序)
题意 https://vjudge.net/problem/CodeForces-1251C 一个字符串,相邻的偶数奇数不能交换位置,其他相邻的情况可以交换,问字符串代表的数最小是多少. 思路 相邻的 ...
- Oracle SQL日期及日期格式获取命令
日期及日期格式: 获取系统日期: sysdate() 格式化日期 to_char(sysdate(),'yyyy-mm-dd,hh24:mi:ss') to_date(sysdate(),'yyyy- ...
- Python爬虫:
python中selenium操作下拉滚动条方法汇总 UI自动化中经常会遇到元素识别不到,找不到的问题,原因有很多,比如不在iframe里,xpath或id写错了等等:但有一种是在当前显示的页面元 ...
- go 创建切片
package main import "fmt" func main() { //自动推导类型,同时进行初始化 s1 := [],,,} fmt.Println("s1 ...
- docker Dockerfile实战
目录 Dockerfile实战 基础pm2 Dockerfile keymetrics/pm2:8-alpine keymetrics/pm2:12-alpine pm2 node Dockerfil ...