目錄
Q2: 如何透過引用傳遞變數? " >Q2: 如何透過引用傳遞變數?
Q3: $GLOBAL 是什麼意思? " >Q3: $GLOBAL 是什麼意思?
## Q4: ini_set() 有什麼用? " >## Q4: ini_set() 有什麼用?
Q5:我應該在什麼時候使用require 和include 呢? " >Q5:我應該在什麼時候使用require 和include 呢?
Q6: PHP中的stdClass是什麼? " >Q6: PHP中的stdClass是什麼?
Q7: PHP中的die() 和exit( ) 函數有什麼不同?" >Q7: PHP中的die() 和exit( ) 函數有什麼不同?
Q8:它们之间的主要区别是什么" >Q8:它们之间的主要区别是什么
Q9: isset() 和 array_key_exists()之间有什么区别?" >Q9: isset() 和 array_key_exists()之间有什么区别?
Q10: var_dump() 和 print_r() 有什么不同?" >Q10: var_dump() 和 print_r() 有什么不同?
Q11: 解释不同的 PHP 错误是什么" >Q11: 解释不同的 PHP 错误是什么
Q12: 如何在 PHP 中启用错误报告?" >Q12: 如何在 PHP 中启用错误报告?
Q13: 使用默认参数声明某些函数" >Q13: 使用默认参数声明某些函数
Q14: PHP 是否支持多重继承?" >Q14: PHP 是否支持多重继承?
Q15: 在 PHP 中,对象是按值传递还是按引用传递?" >Q15: 在 PHP 中,对象是按值传递还是按引用传递?
Q16:$a != $b 和 $a !== $b ,之间有什么区别?" >Q16:$a != $b 和 $a !== $b ,之间有什么区别?
Q17: 在 PHP 中,什么是 PDO?" >Q17: 在 PHP 中,什么是 PDO?
Q18: 说明我们如何在PHP中处理异常?" >Q18: 说明我们如何在PHP中处理异常?
Q19: 区分echo和print()" >Q19: 区分echo和print()
Q20: require_once 和 require 在什么场景下使用?" >Q20: require_once 和 require 在什么场景下使用?
Q21: 判断PHP数组是否是关联数组" >Q21: 判断PHP数组是否是关联数组
Q22: 如何将变量和数据从PHP传至Javascript" >Q22: 如何将变量和数据从PHP传至Javascript
Q23: 有一个方法可以复制一个 PHP 数组至另一个数组吗?" >Q23: 有一个方法可以复制一个 PHP 数组至另一个数组吗?
首頁 後端開發 php教程 20+值得了解的PHP面試題(附答案分析)

20+值得了解的PHP面試題(附答案分析)

Jun 02, 2022 am 11:15 AM
php

這篇文章跟大家分享20多個PHP面試題,查漏補缺,帶你鞏固一波地基,看看你能答對幾個?希望對大家有幫助。

20+值得了解的PHP面試題(附答案分析)

Q1: == 和 === 有什麼差別?

主題: PHP
困難: ⭐

  • 如果是兩個不同的型別,運算子==則在兩個不同的型別之間進行強制轉換
  • ===運算子執行'型別安全比較'

這表示只有當兩個運算元具有相同的型別和相同的值時,它才會傳回TRUE。

1 === 1: true
1 == 1: true
1 === "1": false // 1 是一个整数, "1" 是一个字符串
1 == "1": true // "1" 强制转换为整数,即1
"foo" === "foo": true // 这两个操作数都是字符串,并且具有相同的值
登入後複製

? 源自: https://stackoverflow.com/questions/80646/how-do-the-php-equality-double-equals-and-identity-triple-equals -comp

主題: PHP
困難: ⭐

為了能夠透過引用傳遞變量,我們在其前面使用&,如下:

$var1 = &$var2
登入後複製

? 源自: https://www.guru99.com/php-interview-questions-answers .html

主題: PHP
難: ⭐

$GLOBALS是關聯數組,包含對腳本全域範圍內目前定義的所有變數的引用。

? 源自: https://www.guru99.com/php-interview-questions-answers.html

主題:

PHP難: ⭐

PHP允許使用者使用ini_set() 修改php.ini 中提到的一些設定。此函數需要兩個字串參數。第一個是要修改的設定的名稱,第二個是要指派給它的新值。

給定的程式碼行將啟用腳本的 display_error 設定(如果它被停用)。

ini_set('display_errors', '1');

#我們需要將上面的語句放在腳本的頂部,以便該設定一直保持啟用狀態,直到最後。此外,透過 ini_set() 設定的值僅適用於目前腳本。此後,PHP 將開始使用 php.ini 中的原始值。

?

源自: https://github.com/Bootsity/cracking-php-interviews-book

主題:

PHP困難: ⭐⭐

require()函數與include()函數相同,只是它處理錯誤的方式不同。如果發生錯誤,include()函數會產生警告,但腳本會繼續執行。 require()函數會產生致命錯誤,腳本就會停止。

我的建議是99.9%的時間只用

require_once

使用

requireinclude代替意味著您的程式碼在其他地方不可重複使用,即您引入的腳本實際上是在執行程式碼,而不是提供類或某些類別功能庫。

?

Source: https://stackoverflow.com/questions/2418473/difference-between-require-include-require-once-and-include-once

主題:

PHP 難度: ⭐⭐

stdClass只是將其他類型強制轉換為對象時使用的通用”空''類。stdClass不是PHP中對象的基類。這可以很容易地證明:

class Foo{}
$foo = new Foo();
echo ($foo instanceof stdClass)?'Y':'N'; // 输出'N'
登入後複製

對於匿名對象,動態屬性等很有用。

考慮

StdClass的一種簡單使用情境是替代關聯數組。請參見下面的範例,該範例顯示json_decode()如何允許取得StdClass實例或關聯數組。相同但未在本範例中顯示的
SoapClient::__soapCall傳回一個StdClass實例。

//带有StdClass的示例
$json = '{ "foo": "bar", "number": 42 }';
$stdInstance = json_decode($json);

echo $stdInstance - > foo.PHP_EOL; //"bar"
echo $stdInstance - > number.PHP_EOL; //42

//Example with associative array
$array = json_decode($json, true);

echo $array['foo'].PHP_EOL; //"bar"
echo $array['number'].PHP_EOL; //42
登入後複製

?

源自: https://stackoverflow.com/questions/931407/what-is-stdclass-in-php

主題:

PHP#困難: ⭐⭐

沒有差別,它們是一樣的。選擇

die()而不是exit()的唯一好處可能是你節省了額外鍵入一個字母的時間.

?

源自: https://stackoverflow.com/questions/1795025/what-are-the-differences-in-die-and-exit-in-php

话题: PHP
困难: ⭐⭐

constdefine的根本区别在于,const在编译时定义常量,而define在运行时定义常量。

const FOO = 'BAR';
define('FOO', 'BAR');

// but
if (...) {
    const FOO = 'BAR';    // 无效
}
if (...) {
    define('FOO', 'BAR'); // 有效
}
登入後複製

同样在PHP 5.3之前,const命令不能在全局范围内使用。你只能在类中使用它。当你想要设置与该类相关的某种常量选项或设置时,应使用此选项。或者你可能想要创建某种枚举。一个好的const用法的例子是摆脱了魔术数字。

Define可以用于相同的目的,但只能在全局范围内使用。它应该仅用于影响整个应用程序的全局设置。

除非你需要任何类型的条件或表达式定义,否则请使用consts而不是define()——这仅仅是为了可读性!

? 源自: https://stackoverflow.com/questions/2447791/define-vs-const

话题: PHP
困难: ⭐⭐

  • array_key_exists它会告诉你数组中是否存在键,并在$a不存在时报错。
  • 如果 key或变量存在且不是nullisset才会返回true。当$a不存在时,isset不会报错。

考虑:

$a = array('key1' => 'Foo Bar', 'key2' => null);

isset($a['key1']);             // true
array_key_exists('key1', $a);  // true

isset($a['key2']);             // false
array_key_exists('key2', $a);  // true
登入後複製

? 源自: https://stackoverflow.com/questions/3210935/whats-the-difference-between-isset-and-array-key-exists

话题: PHP
困难: ⭐⭐

  • var_dump函数用于显示变量/表达式的结构化信息,包括变量类型和变量。数组递归浏览,缩进值以显示结构。它还显示哪些数组值和对象属性是引用。

  • print_r()函数以我们可读的方式显示有关变量的信息。数组值将以键和元素的格式显示。类似的符号用于对象。

考虑:

$obj = (object) array('qualitypoint', 'technologies', 'India');
登入後複製

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
)
登入後複製

? 源自: https://stackoverflow.com/questions/3406171/php-var-dump-vs-print-r

话题: PHP
困难: ⭐⭐

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

? 源自: https://pangara.com/blog/php-interview-questions

话题: PHP
困难: ⭐⭐

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

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

? 源自: https://www.codementor.io/blog/php-interview-questions-sample-answers-du1080ext

话题: PHP
困难: ⭐⭐

思考:

function showMessage($hello = false){
  echo ($hello) ? 'hello' : 'bye';
}
登入後複製

? 源自: https://www.codementor.io/blog/php-interview-questions-sample-answers-du1080ext

话题: PHP
困难: ⭐⭐

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

? 源自: https://www.guru99.com/php-interview-questions-answers.html

话题: PHP
困难: ⭐⭐

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

? 源自: https://www.guru99.com/php-interview-questions-answers.html

话题: PHP
困难: ⭐⭐

!= 表示 不等于 (如果$a不等于$b,则为 True), !== 表示 不全等 (如果$a与$b不相同,则为 True).

? 源自: https://www.guru99.com/php-interview-questions-answers.html

话题: PHP
困难: ⭐⭐

PDO 代表 PHP 数据对象。

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

? 源自: https://github.com/Bootsity/cracking-php-interviews-book

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";
}
登入後複製

? Source: https://github.com/Bootsity/cracking-php-interviews-book

Topic: PHP
Difficulty: ⭐⭐

echoprint 基本上是一样的. 他们都是用来打印输出数据的。

区别在于:

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

? Source: https://github.com/Bootsity/cracking-php-interviews-book

Topic: PHP
Difficulty: ⭐⭐⭐

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

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

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

? Source: https://stackoverflow.com/questions/2418473/difference-between-require-include-require-once-and-include-once

Topic: PHP
Difficulty: ⭐⭐⭐

思考:

function has_string_keys(array $array) {
  return count(array_filter(array_keys($array), 'is_string')) > 0;
}
登入後複製

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

? Source: stackoverflow.com

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>
登入後複製
  • 可以在网页任何地方输出数据, 然后使用 JavaScript 从 DOM 中获取信息.
<div id="dom-target" style="display: none;">
    <?php
        $output = "42"; // 此外, 做一些操作,获得 output.
        echo htmlspecialchars($output); /* 你必须避免特殊字符,不然结果将是无效HTML。 */
    ?>
</div>
<script>
    var div = document.getElementById("dom-target");
    var myData = div.textContent;
</script>
登入後複製
  • 直接在 JavaScript 代码中 echo 数据。
<script>
    var data = <?php echo json_encode("42", JSON_HEX_TAG); ?>; // Don&#39;t forget the extra semicolon!
</script>
登入後複製

? Source: https://stackoverflow.com/questions/23740548/how-do-i-pass-variables-and-data-from-php-to-javascript

Topic: PHP
Difficulty: ⭐⭐⭐

PHP 数组通过复制进行赋值,而对象通过引用进行赋值。所有默认情况下,PHP 将复制这个数组。这里有一个 PHP 参考,一目了然:

$a = array(1,2);
$b = $a; // $b 是一个不同的数组
$c = &$a; // $c 是 $a 的引用
登入後複製

? Source: https://stackoverflow.com/questions/1532618/is-there-a-function-to-make-a-copy-of-a-php-array-to-another

英文原文地址:https://dev.to/fullstackcafe/45-important-php-interview-questions-that-may-land-you-a-job-1794

推荐学习:《PHP视频教程

以上是20+值得了解的PHP面試題(附答案分析)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

See all articles