1. 程式人生 > >【PHP】解析PHP中的變數

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