2011-10-20 75 views
4

可能重複:
Detecting whether a PHP variable is a reference/referenced如何判斷一個PHP變量是變量的引用

我想知道是否有一個函數,將告訴我,如果一個變量的引用變量。如果沒有特定的功能,有沒有辦法確定它是否是一個參考變量?

+0

我不認爲有一個內置的函數來檢查一個變量是否是一個引用。 –

+0

有趣的問題,但我不知道用例是什麼。 – deceze

+0

用例用於調試意外更改的變量。 –

回答

0

user examples看起來好像沒有直接的方法,但是您會在那裏找到解決方案。

0
<?php 
$a = 1; 
$b =& $a; 
$c = 2; 
$d = 3; 
$e = array($a); 
function is_reference($var){ 
    $val = $GLOBALS[$var]; 
    $tmpArray = array(); 
    /** 
    * Add keys/values without reference 
    */ 
    foreach($GLOBALS as $k => $v){ 
     if(!is_array($v)){ 
      $tmpArray[$k] = $v; 
     } 
    } 

    /** 
    * Change value of rest variables 
    */ 
    foreach($GLOBALS as $k => $v){ 
     if($k != 'GLOBALS' 
      && $k != '_POST' 
      && $k != '_GET' 
      && $k != '_COOKIE' 
      && $k != '_FILES' 
      && $k != $var 
      && !is_array($v) 
     ){ 
      usleep(1); 
      $GLOBALS[$k] = md5(microtime()); 
     } 
    } 

    $bool = $val != $GLOBALS[$var]; 

    /** 
    * Restore defaults values 
    */ 
    foreach($tmpArray as $k => $v){ 
     $GLOBALS[$k] = $v; 
    } 

    return $bool; 
} 
var_dump(is_reference('a')); 
var_dump(is_reference('b')); 
var_dump(is_reference('c')); 
var_dump(is_reference('d')); 
?> 

這是the PHP documentation的一個例子。

相關問題