iT邦幫忙

0

如何判斷兩個變數是使用同一個參考 還是 僅僅是其內容相同?

php

<?php
$ary_1 = array('key1'=>'紅色', 'key2'=>'綠色', '黃色', '彩色');

$ary_2 = $ary_1; //僅複製值

$ary_3 = &$ary_1; //相同參考

if($ary_1 === $ary_2)
{
echo "true";
}

if($ary_1 === $ary_3)
{
echo "true";
}

//以上兩個判斷式皆是 true,我要如何判斷陣列1與陣列3 才是相同參考 而 陣列1與陣列2不是相同參考僅僅是內容相同?
?>

6
wiseguy
iT邦超人 1 級 ‧ 2015-03-24 22:52:42
最佳解答
builder iT邦新手 2 級 ‧ 2015-03-24 23:32:53 檢舉

謝謝~ 就是這個函數...

&lt;pre class="c" name="code">function EqualReferences(&$first, &$second)
{
	if($first !== $second)
	{
		return false;
	} 
	$value_of_first = $first;
	$first = ($first === true) ? false : true;
	$is_ref = ($first === $second);
	$first = $value_of_first;
	return $is_ref;
}
4
weiclin
iT邦高手 4 級 ‧ 2015-03-24 20:42:58

改變其中一個, 然後看另一個是否也被改變了
這裡有人提供了作法, 你參考看看
http://php.net/manual/en/language.references.spot.php#72203

我要發表回答

立即登入回答