聘我网

新概念招聘3.0

比较有意思的PHP面试题

vote up0vote downstar

概念性比较强,贴一下先:

<?php 
$test = 'aaaaaa';
$abc = & $test;
unset($test);
echo $abc;

这段会输出什么?

答案:aaaaaa

平时&用作逻辑操作与位运算还有形参中表引用比较多,像这样实参取引用还真没在PHP中用过。

$count = 5;
function get_count()
{
    static $count = 0;
    return $count++;
}
echo $count;
++$count;
echo get_count();
echo get_count();

答案:501
static变量的特殊之处在于该局部变量只生成一次,所以第一次调用get_count的时候生成一次,第二次将还是上次调用退出时的值。

<?php 
$GLOBALS['var1'] = 5;
$var2 = 1;
function get_()
{
    global $var2;
    $var1 = 0;
    return $var2++;
}
get_();
echo $var1;
echo $var2;

答案:52 这题主要是了解$GLOBALS的作用,知道$GLOBALS['var1']等于global$var1就能得到结果

function get_arr($arr)
{
    unset($arr[0]);
}
$arr1 = array(1,2);
$arr2 = array(1,2);

get_arr(&$arr1);
get_arr($arr2);
echo count($arr1);
echo count($arr2);

答案:12 虽然调用时引用(Call-time pass-by-reference)已经deprecated,但还是会work

 

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.