1. $relation_info['ext_limit'] && $ext_limit = ' AND ' . $this->_getExtLimit($relation_info['ext_limit']);2. function &m() {
}以上两种 & 的用法是什么意思?

解决方案 »

  1.   

    有2个?
    我怎么只看到一个&&就是and 是逻辑与
    &就是引用,和C语言中的指针类似,准确的说,是函数有返回值,然后其他别名要使用,为了不COPY更多的对象或者标量,用&指向同一块内存
      

  2.   


    &解释
    PHP 的引用允许用两个变量来指向同一个内容。意思是,当这样做时: 
    <?php
    $a =& $b;
    ?>  
    这意味着 $a 和 $b 指向了同一个变量。 
    注: $a 和 $b 在这里是完全相同的,这并不是 $a 指向了 $b 或者相反,而是 $a 和 $b 指向了同一个地方。 
    注: 如果具有引用的数组被拷贝,其值不会解除引用。对于数组传值给函数也是如此。引用做的第二件事是用引用传递变量。这是通过在函数内建立一个本地变量并且该变量在呼叫范围内引用了同一个内容来实现的。例如: 
    <?php
    function foo(&$var)
    {
        $var++;
    }$a=5;
    foo($a);
    ?>  
    将使 $a 变成 6。这是因为在 foo 函数中变量 $var 指向了和 $a 指向的同一个内容 
    &&是逻辑与运算符,表示如果左操作数和右操作数都为真的话,运算结果为真,否则就为假。如:
     $a=true;
     $b=true;
     $b2=false;$c=$a&&$b;//此处,$c的值为true,因为$a和$b都是true,&&的运算结果也为true
    $d=$b2&&$a;//此处,$d的值为false,因为$b2不是true,是false,所以&&的运算结果为false
      

  3.   

    两位不好意思,我问问题时太仓促了,没有表述好,现在我重新整理一下...第一个问题我想找到的是像 is_file($conf_file) && $plugins = include($conf_file); 这样的句子,执行是怎么样的一个逻辑.第二个问题根据你们的回答,是不是说 &m() 函数的返回值将是一个指针?
      

  4.   

    is_file($conf_file) && $plugins = include($conf_file); 
    -------------------------------------------------------如果前面的条件成立, 则执行&&后面的, 相当于 if() //do something
      

  5.   

    第二个问题根据你们的回答,是不是说 &m() 函数的返回值将是一个指针?
    ---------------------------------------------------------不是返回一个指针, 而是把函数的返回結果的存放地址指向 将要赋给的变量
      

  6.   

    借用网上的一个例子function &test()
    {
    static $b=0;//申明一个静态变量
    $b=$b+1;
    echo $b;
    return $b;
    }
    $a=test();// 值 为1
    $a=5;
    $a=test();// 值 为2
    $a=&test();// 值 为3
    $a=5;
    $a=test();//值 为6  ,