在php中一个自定义变量的值可以做为别一个变量的名或一个函数来使用,我们称之为可变变量或可变函数,比如php代码中出现的带个多个$符号(比如 $$a)的变量就是可变变量!
php 可变变量的用法
可变变量:利用一个普通的变量通过声明来设置另一个变量的变量名,
示例1:
<?php $host = 'feiniaomy.com'; $str = 'host'; echo $str; echo $$str; //这里实际上是指向的变量 $host
输出结果:
host feiniaomy.com
示例2:
<?php $a = 'host'; $$a = 'feiniaomy.com'; // $$a 等价于 $host echo $host;
输出结果:
feiniaomy.com
示例3:
<?php $a = 'b'; $b = 'c'; $c = 'a'; echo $a; //输出 :b echo $b; //输出 :c echo $c; //输出 :a echo $$a; //输出 :c echo $$$a; //输出 :a echo $$$$a; //输出 :b
php 可变函数的使用方法
可变函数与可变变量大同小异,如果在可变变量的后面加入一个"()"符号,那么php就会将这个可变变量当做一个函数来解析处理,也就是说可变函数!
例1:
<?php function get_host() { echo "feiniaomy.com"; } $a = 'get_host'; $a(); //这里等价于 get_host() 函数
输入结果:
feiniaomy.com
例2:
<?php class A { public function echo_a() { echo "a"; } public function echo_b() { echo "b"; } public function echo_c() { echo "c"; } } $arr = ['echo_a', 'echo_b', 'echo_c']; $a = new A(); foreach ($arr as $v) { $a->$v(); }
输出结果:a b c
PS:
php的可变变量与可变函数虽然使用起来非常的灵活,但他的可读性不是很好,在正式的项目中如果不是在非必要的情况下是不建议使用的!