PHP常见面试题(一)

本文详细解析了PHP常见面试题,包括引用赋值、empty()函数、strcmp()函数应用、三元运算符替代、final修饰符作用、静态属性与对象赋值,通过实例深入理解PHP核心知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP常见面试题(一)

第一部分:PHP语言知识

1),以下程序的输出结果是?

<?php
$a="hello";
$b= &$a;
unset($b);
$b="world";
echo $a;

答案:hello。此题主要考察PHP中的引用赋值和传递赋值。传递赋值是将一个变量的值的副本赋值给另外的一个变量,此后对这两个变量的任何操作互不影响。引用赋值是将一个变量a的地址引用赋给另一个变量b,此时变量a和变量b拥有相同的地址引用,即指向同一个地址。如果改变其中任何一个变量的值,另外一个变量的值也会跟着改变。此时unset变量b,只是取消了改变量b的指向的地址,对变量a没有影响,变量仍然指向原来的那个地址。
需要注意的一点是,PHP类对象之间的赋值均为引用赋值。

2),以下程序的运行结果是?

<?php
$var = FALSE;
if (empty($var)) {
    echo "null";
} else {
    echo "have value";
}

答案:null。此题主要考察empty()的用法。empty()用来检查一个变量是否为空。 empty() 只检测变量,检测任何非变量的东西都将导致解析错误。换句话说,后边的语句将不会起作用: empty(addslashes( name))empty( var);如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

3),以下程序的运行结果是?

<?php
$str  = 'song';
$str1 = 'songdengtao';
$strc = strcmp($str, $str1);
switch ($strc) {
    case 1:
        echo 'str > str1';
        break;
    case1:
        echo 'str < str1';
        break;
    case 0:
        echo 'str = str1';
        break;
    default:
        echo 'str <> str1';
}

答案:str <> str1。此题主要考察strcmp()函数的用法。此函数用来比较两个函数的大小。逐个比较字符的每个字符,如果str1等于 str2strcmp( str1, str2) str2剩余的字符数的负数。如果不是以上的情况,则在遇到两个字符串第一个不同的字符串时,则该函数返回的是这2个字符的大小,大的话返回1,小的话返回-1。

4),以下脚本可以用什么三元运算符脚本来代替?

<?php
if ($a < 10) {
    if ($b > 11) {
        if ($c == 10 && $d != $c) {
            $x=0;
        } else {
            $x=1;
        }
    }
}

答案:

<?php
$x = ($a < 10 && $b > 11 && $c == 10 && $d != $c) ? 0 : 1;

5),在PHP面向对象中,final修饰符的作用?

答案:final关键词用来定义类或类的方法的最终定义。试用了final关键词修饰的类,不能扩展,即不能被继承。使用了final关键词修饰了的类方法,不能被子类定义的方法覆盖。final关键词不能应用于类的成员属性。

6),以下程序脚本的输出结果是?

<?php

class A
{
    public static $num = 0;

    public function __construct()
    {
        self::$num++;
    }
}
new A();
new A();
new A();
echo A::$num;

答案:3。静态属性常驻内存,不会被立即释放。

7),以下程序脚本的输出结果是?

<?php
class A
{
    public $num=100;
}
$a = new A();
$b = $a;
$a->num = 200;
echo $b->num;

答案:200。此题考察的是对象之间的赋值,对象之间的赋值均为引用赋值。
<?php
$classA = $classB;
// 跟这个一样的
$classA = &$classB;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值