标签:
php是一门脚本语言,同时php中的变量类型也是弱语言类型,这和javascript非常相似。笔者在这里说一说PHP中的变量知识点。
1. 引用类型变量
看下面的案例:
class Ref{
public $val = 100;
}
function change($v){
$v++;
}
$Ref = new Ref();
echo $Ref->val."\n";//100
change($Ref->val);
echo $Ref->val."\n";//100
?>
输出结果为:
100
100
其中符号点(.)表示连接符。
如果把change函数改成如下的形式
function change(&$v){//注意多了&符号
$v++;
}
然后输出的结果就是:
100
101
&在上面已经演示过了,&表示引用操作符,顾名思义,被&操作符修饰的变量,表示传递变量的引用。
例如:
$foo = "test";
$bar = &$foo;//以引用传递
echo $bar."\n";//test
$bar = "hello";
echo $foo."\n";//hello
unset($foo);//释放给定的变量
if( isset($bar) ) //检测变量是否已设置
echo "bar is set\n";
else
echo "bar is not set\n";
if( isset($foo) ) //检测变量是否已设置
echo "foo is set\n";
else
echo "foo is not set\n";
?>
2.可变变量
php中还提供了可变变量这种语法,一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。
例如:
class foo {
var $bar = 'I am bar.';
var $arr = array(name=>'jamy.',age=>12);
var $r = 'I am r.';
}
$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo $foo->$bar . "\n";
echo $foo->{$baz[1]} . "\n";
$start = 'b';
$end = 'ar';
echo $foo->{$start . $end} . "\n";
$arr = 'arr';
echo $foo->{$arr[1]} . "\n";
?>
输出为:
I am bar.
I am bar.
I am bar.
I am r.
标签:
来源: https://www.cnblogs.com/HDK2016/p/10188004.html