【PHP】解析PHP中的变量

php是一门脚本语言,同时php中的变量类型也是弱语言类型,这和javascript非常相似。笔者在这里说一说PHP中的变量知识点。

1. 引用类型变量

看下面的案例:

<?php
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


&在上面已经演示过了,&表示引用操作符,顾名思义,被&操作符修饰的变量,表示传递变量的引用。
例如:

<?php
$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中还提供了可变变量这种语法,一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。
例如:

<?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.

猜你喜欢

转载自www.cnblogs.com/HDK2016/p/10188004.html