免费邮箱 |加入收藏 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > PHP专区 > PHP技巧

引用定位

时间:2011-05-16 15:55:57  来源:站内  作者:潘春会

    }
    $same = false;
   
$key = uniqid("same_obj_", true);
   
$var1->$key = $key;
    if (isset(
$var2->$key) && $var2->$key == $key) {
       
$same = true;
    }
    unset(
$var1->$key);
    return
$same;
}

// PHP4 references are risilient as array members
$f1 =& new Foo;
$f2 = array(&$f1);
$f3 = $f2;
echo (int)
same_obj($f1, $f3[0]); // 1!
?>

BenBE at omorphia dot de (08-Jan-2007 03:37)

 

Hi,

If you want to check if two variables are referencing each other (i.e. point to the same memory) you can use a function like this:

<?php

function same_type(&$var1, &$var2){
    return
gettype($var1) === gettype($var2);
}

function
is_ref(&$var1, &$var2) {
   
//If a reference exists, the type IS the same
   
if(!same_type($var1, $var2)) {
        return
false;
    }

   
$same = false;

   
//We now only need to ask for var1 to be an array ;-)
   
if(is_array($var1)) {
       
//Look for an unused index in $var1
       
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
如何找出DHCP地址池里未使用的IP地址
如何找出DHCP地址池里
国内常用的DNS列表
国内常用的DNS列表
Linux邮件服务器软件比较
Linux邮件服务器软件比
学用纯CSS打造可折叠树状菜单
学用纯CSS打造可折叠树
相关文章
栏目更新
栏目热门