加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 交互 > 正文

PHP程序员必须会的 45 个PHP 面试题

发布时间:2020-12-25 05:15:49 所属栏目:交互 来源:网络整理
导读:副标题#e# Q1: == 和 === 之间有什么区别? 话题:?PHP 困难: ? 如果是两个不同的类型,运算符? == ?则在两个不同的类型之间进行强制转换 === ?操作符执行’ 类型安全比较 ‘ 这意味着只有当两个操作数具有相同的类型和相同的值时,它才会返回 TRUE。 1 ===

var_dump($obj)将在屏幕的输出下方显示:

object(stdClass)#1 (3) {
 [0]=> string(12) "qualitypoint"
 [1]=> string(12) "technologies"
 [2]=> string(5) "India"
}

  

print_r($obj)将在屏幕的输出下方显示。

stdClass Object ( 
 [0] => qualitypoint
 [1] => technologies
 [2] => India
)

  

Q11: 解释不同的 PHP 错误是什么

话题:?PHP
困难: ??
  • notice 不是一个严重的错误,它说明执行过程中出现了一些错误,一些次要的错误,比如一个未定义的变量。
  • 当出现更严重的错误,如 include () 命令引入不存在的文件时,会给出警告 warning。 这个错误和上面的错误发生,脚本都将继续。
  • fatal error?致命错误将终止代码。未能满足 require () 将生成这种类型的错误。

Q12: 如何在 PHP 中启用错误报告?

话题:?PHP
困难: ??

检查 php.ini 中的 “display_errors” 是否等于 “on”,或者在脚本中声明 “ini_set('display_error',1)”。

然后,在你的代码中包含 “ERROR_REPORTING(E_ALL)”,以便在脚本执行期间显示所有类型的错误消息。

Q13: 使用默认参数声明某些函数

话题:?PHP
困难: ??
思考:
function showMessage($hello = false){
  echo ($hello) ? 'hello' : 'bye';
}

  

Q14: PHP 是否支持多重继承?

话题:?PHP
困难: ??
PHP 只支持单一继承;这意味着使用关键字’extended’只能从一个类扩展一个类。

Q15: 在 PHP 中,对象是按值传递还是按引用传递?

话题:?PHP
困难: ??

在 PHP 中,通过值传递的对象。

Q16:$a != $b 和 $a !== $b ,之间有什么区别?

话题:?PHP
困难: ??
!=表示不等于(如果 $a 不等于 $b,则为 True),!==表示不全等(如果 $a 与 $b 不相同,则为 True).

Q17: 在 PHP 中,什么是 PDO?

话题:?PHP
困难: ??

PDO?代表 PHP 数据对象。

它是一组 PHP 扩展,提供核心 PDO 类和数据库、特定驱动程序。它提供了供应商中立、轻量级的数据访问抽象层。因此,无论我们使用哪种数据库,发出查询和获取数据的功能都是相同的。它侧重于数据访问抽象,而不是数据库抽象。

Q18: 说明我们如何在 PHP 中处理异常?

Topic:?PHP
Difficulty: ??
当程序执行出现异常报错时,后面的代码将不会再执行,这时 PHP 将会尝试匹配第一个 catch 块进行异常的处理,如果没有捕捉到异常程序将会报致命错误并显示”Uncaught Exception”。

可以在 PHP 中抛出和捕获异常。

为了处理异常,代码可以被包围在”try” 块中.

每个 try 必须至少有一个对应的catch块 。多个不同的 catch 块可用于捕获不同类的异常。

在 catch 块中也可以抛出异常(或重新抛出之前的异常)。

思考:

try {
    print "this is our try block n";
    throw new Exception();
} catch (Exception $e) {
    print "something went wrong,caught yah! n";
} finally {
    print "this part is always executed n";
}

  

Q19: 区分 echo 和 print ()
Topic:?PHP
Difficulty: ??

echo?和?print?基本上是一样的。他们都是用来打印输出数据的。

区别在于:

    • echo 没有返回值,而 print 的返回值为 1,因此 print 可以在表达式中使用。
    • echo 可以接受多个参数一起输出 (但是这种多个的输出方式很少见),而 print 一次只可以输出一个参数。
    • echo 的输出比 print 效率要高一些 .

Q20: require_once 和 require 在什么场景下使用?

Topic:?PHP
Difficulty: ???

require_once() 作用与 require() 的作用是一样的,都是引用或包含外部的一个 php 文件,require_once() 引入文件时会检查文件是否已包含,如果已包含,不再包含 (require) 它。

我建议在 99.9% 的时候要使用require_once

使用requireinclude意味着您的代码不可在其他地方重用,即您要拉入的脚本实际上是在执行代码,而不是提供类或某些函数库。

Q21: 判断 PHP 数组是否是关联数组

Topic:?PHP
Difficulty: ???

思考:
function has_string_keys(array $array) {
  return count(array_filter(array_keys($array),'is_string')) > 0;
} 

  

如果$array至少有一个字符串类型的 key ,它将被视为关联数组。

Q22: 如何将变量和数据从 PHP 传至 Javascript

Topic:?PHP
Difficulty: ???

这里有几种实现方法:

  • 使用 Ajax 从服务端获取你需要的数据。

思考get-data.php

echo json_encode(42);

  

思考index.html:

<script>
    function reqListener () {
      console.log(this.responseText);
    }

    var oReq = new XMLHttpRequest(); // new 一个请求对象
    oReq.onload = function() {
        // 在这里你可以操作响应数据
        // 真实的数据来自 this.responseText
        alert(this.responseText); // 将提示: 42
    };
    oReq.open("get","get-data.php",true);
    //                               ^ 不要阻塞的其余部分执行。
    //                                 不要等到请求结束再继续。
    oReq.send();
</script>

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读