PHP面试编程题汇总(3)

接上文:PHP面试编程题汇总(2)
21. 下面代码执行结果是

$array= array('1','1');
foreach($array as $k=>$v){
       $v= 2;
 }

print_r($array)

考察点:数组
输出结果:Array
(
[0] => 1
[1] => 1
)

  1. 下面代码执行结果正确的是
$x="display"; 
${$x.'_result'} ();

编译错误

  1. 下面代码的结果
$a = ['a','b','c'];
$b = ['a','b'];
$c = $a+$b;
print_r($c);

考察点:数组运算
输出结果:Array ( [0] => a [1] => b [2] => c )

  1. 下面代码的执行结果
echo 24%(-5)

考察点:运算符
输出结果: 4

  1. 下面代码的结果
$a = "hello";
$b = &$a; 
unset($b);
$b = "world";
echo $a;

考察点:引用
输出结果:hello
$b,$a指向了一个地址。有一个删除,另一个则不会受影响

  1. 下面代码的结果:
$a = "hello";
$b = &$a;
$b = "world";
echo $a;

考察点:引用
输出结果: world
$b,$a指向了一个地址。 有一个更改,另一个也会更改

  1. 输出下面结果
$j = 5;
switch ($j) {
    default:
        echo "no result";
    case 1:
        echo "周一";
    case 2:
        echo "周二";
    case 3:
        echo "周三";
    case 4:
        echo "周四";
    case 5:
        echo "周五";
    case 6:
    case 7:
        echo "周末";

考察点:switch
输出结果: 周五周末
5后面没有结束语,会一直往下执行

  1. 下面代码的结果
 class A
    {
         private function a()
         {
            echo "a";
         }
         public function __call($name,$arguments)
         {
            echo "调用不存在的方法名是:".$name.'<br>参数是:';
            print_r($arguments);
            echo '<br>';
         }
         $ins=new A;
         $ins->b([1,2,3]);

考察点:面向对象
输出结果:调用不存在的方法名是:b
参数是:Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 ) )
__call方法在调用对象中不存在的方法时自动调用
__call方法有2个参数

  1. empty与isset()的区别

$a = null;

var_dump(isset($a)); // bool(false)

var_dump(empty($a));// bool(true)
$b = 0.0;

var_dump(isset($c)); //bool(true)

var_dump(empty($c)); //bool(true)

$c = 0;

var_dump(isset($d)); //bool(true)

var_dump(empty($d));// bool(true)

$e = “0.0”;

var_dump(isset($e)); // bool(true)

var_dump(empty($e)); // bool(false)

  1. 求出下列相联值的个数
    $array = [1,1,0,0,1,1,1];
foreach ($array as $k => $v) {
   if ($tmp == 0) {
        $tmp = $v;
        continue;
    }
 
    if ($tmp == $v) {
        $count++;
    } else {
        if(isset($a[$tmp])){
            if ($a[$tmp] < $count) { 
                $a[$tmp] = $count;
            }
        } else {
            $a[$tmp] = $count; 
        }
 
        $tmp = $v;
        $count = 1;
    }
 

    if (!isset($array[$k+1])) { 
        if(isset($a[$v])){
            if ($a[$v] < $count) {
                $a[$v] = $count;
            }
        } else {
            $a[$v] = $count;
        }
    }
}
 
print_r($a);

Array ( [1] => 3 ) 

PHP面试编程题汇总(4)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值