PHP面试编程题汇总(2)

接上文:PHP面试编程题汇总(1)
11. 下面代码输出的是

    $rest = substr("abcdef", -1);
    $rest = substr("abcdef", 0, -1);

考察点:字符串函数
substr(字符串,开始位置,长度) 长度可省略
substr(“abcdef”, -1) 结果为 f
substr(“abcdef”, 0, -1) 结果 abcde
-2表示从末尾开始略去两个字符

  1. 下面代码输出的是
    define("x",5);
    $x = x+10;
    echo x;

考察点:define
define()定义常量 const也可以定义常量
echo x 不是$x 所以结果为5

  1. 正确的是
var_dump(isset($a)) . "\n";
$a = 0;
var_dump(isset($a)) . "\n";
var_dump(is_null($a)) . "\n";
var_dump(empty($a));

考察点:变量
is_null() 检测变量是否为null,True为是,False为不是
所以结果依次为:bool(false) bool(true) bool(false) bool(true)

  1. 执行下面代码
$a = 1;
$b = 2;
 
function sum(&$a, $b)
{
    ++$a;
    $b++;
    return $a + $b;
}
 
$c = sum($a, $b);
 
echo $a . ",";
echo $b . ",";
echo $c . "\n";

考察点:作用域
运行结果 2 2 5
sum()方法把$a传入,++$a 此时 $a=2 $a有引用&符号,变成了全局变量\
sum()方法把$b传入,$b++ 此时$b=3 是局部变量

  1. 下面代码的运行结果
$a = 1;
$b = 2;
 
function sum($a, $b)
{
    ++$a;
    $b++;
    return $a + $b;
}
 
$c = sum($a, $b);
 
echo $a . ",";
echo $b . ",";
echo $c . "\n";

考察点: 作用域
运行结果: 1 2 5
sum()方法把$a传入,++$a 此时 $a=2 是局部变量 \
sum()方法把$b传入,$b++ 此时 $b=3 是局部变量
$c=$a+$b = 2+3=5
所以运行结果为 1 2 5

  1. 下面代码的结果是
$x=array(1,3,2,3,7,8,9,7,3); 
$y=array_count_values($x); 
echo $y[8];

考察点:函数 array_count_values
打印下,$y
Array(
[1] => 1
[3] => 3
[2] => 1
[7] => 2
[8] => 1
[9] => 1
)

  1. 下面代码执行结果
    class A{
    public $num=100; 
}
$a = new A();
$b = $a;
$a->num=200;
echo $b->num;

考察点:面向对象
打印$b print_r($b);
A Object
(
[num] => 100
) \
在PHP中,基本类型变量放在栈中,对象、数组放在堆中。
将$a 赋给$b,只是把对应的地址给了他,即$a、$b都存放了对象在堆中的地址,所以$b->num和$a->num访问的是同一份数据。
所以结果为200

  1. 下列代码的输出结果
echo(floor(0.60));
echo(floor(0.1+0.7)*10);
echo(floor(5.1));
echo(floor(-5.9))

考察点:函数
floor() 向下取整 floor(0.60)向下取整 0
floor(0.1+0.7) 向下取整也是0 0*10还是0
floor(5.1) 向下取整是5
floor(-5.9)向下取整是-6

  1. 下列代码输出内容是
class A{ 
    public function __construct(){ 
        echo "Class A...<br/>"; 
    }
}
class B extends A{
    public function __construct(){
        echo "Class B...<br/>"; 
    }
}
new B();

考察点:面向对象
B是子类。子类中定义了 构造函数 __construct 会覆盖父类的__construct。 如果没有定义__construct,则会使用父类的
所以结果为 Class B…

  1. 以下程序运行结果为:
$var = FALSE;
if (empty($var)){
    echo"null";
}else{
    echo"have value";
}

输出结果:null

接下文 PHP面试编程题汇总(3)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值