100 个常见的 PHP 面试题

时间:2020-05-01

PHP 是什么?

PHP即“超文本预处理器”,是一种通用开源脚本语言。

PHP 的全称?

PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。

PHP 与哪些编程语言相似?

PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

实际使用的 PHP 是哪个版本?

PHP/7.4.4

如何从命令行执行 PHP 脚本?

php test.php

如何从命令行界面运行交互式 PHP Shell?

php -a

正确开始和结束 PHP 代码块的最常见的两种方式是什么?

PHP 也允许使用短标记 <??>,但不鼓励使用。只有通过激活 php.ini 中的 short_open_tag 配置指令或者在编译 PHP 时使用了配置选项 --enable-short-tags 时才能使用短标记。

如何直接将输出显示给浏览器?

PHP 是否支持多重继承?

不支持

使用 final 修饰的类和方法代表什么意思?

如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。

PHP 中如何比较两个对象?

当使用比较运算符(==)比较两个对象变量时,比较的原则是:如果两个对象的属性和属性值 都相等,而且两个对象是同一个类的实例,那么这两个对象变量相等。

而如果使用全等运算符(===),这两个对象变量一定要指向某个类的同一个实例(即同一个对象)。

PHP 和 HTML 是如何交互的?

php嵌入到html

通过ajax传输数据

通过表单或 URL 传递值时需要哪种类型的操作?

通过表单或 URL 传递值,则需要使用 htmlspecialchars() 和 urlencode() 对它们进行编码和解码。

PHP 和 Javascript 是如何交互的?

通过ajax或嵌入到html

PHP 处理图片需要添加什么扩展?

PHP 并不仅限于创建 HTML 输出, 它也可以创建和处理包括 GIF, PNG, JPEG, WBMP 以及 XPM 在内的多种格式的图像。 更加方便的是,PHP 可以直接将图像数据流输出到浏览器。 要想在 PHP 中使用图像处理功能,你需要连带 GD 库一起来编译 PHP。 GD 库和 PHP 可能需要其他的库, 这取决于你要处理的图像格式。

函数 imagetypes() 的功能?

imagetypes — 返回当前 PHP 版本所支持的图像类型

本函数以比特字段方式返回与当前 PHP 版本关联的 GD 库所支持的图像格式。将返回以下结果,IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP| IMG_XPM

获取图片属性(size, width, 和 height)的函数是什么?

getimagesize — 取得图像大小

getimagesize( string $filename[, array &$imageinfo] ) : array

返回一个具有四个单元的数组。索引 0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。这些标记与 PHP 4.3.0 新加的 IMAGETYPE 常量对应。索引 3 是文本字符串,内容为"height="yyy" width="xxx"",可直接用于 IMG 标记。

imagesx — 取得图像宽度

imagesx( resource $image) : int

imagesy — 取得图像高度

imagesy( resource $image) : int

include()require() 在执行失败的情况下有什么不同?

被包含文件先按参数给出的路径寻找,如果没有给出目录(只有文件名)时则按照 include_path 指定的目录寻找。如果在 include_path 下没找到该文件则 include 最后才在调用脚本文件所在的目录和当前工作目录下寻找。如果最后仍未找到文件则 include 结构会发出一条警告;这一点和 require 不同,后者会发出一个致命错误。

require () 和 require_once () 之间的主要区别是?

require_once 语句和 require 语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含。

如何使用 PHP 脚本显示文本?

echo 'hello';

如何使用 PHP 显示变量信息并使人类可读?

print_r — 以易于理解的格式打印变量。

如何为 PHP 脚本设置无限执行时间?

set_time_limit — 设置脚本最大执行时间

设置允许脚本运行的时间,单位为秒。如果超过了此设置,脚本返回一个致命的错误。默认值为30秒,或者是在php.ini的max_execution_time被定义的值,如果此值存在。

当此函数被调用时,set_time_limit()会从零开始重新启动超时计数器。换句话说,如果超时默认是30秒,在脚本运行了了25秒时调用 set_time_limit(20),那么,脚本在超时之前可运行总时间为45秒。

最大的执行时间,单位为秒。如果设置为0(零),没有时间方面的限制。

PHP 错误 'Parse error in PHP - unexpected T_variable at line x' 意思是?

这是一个 PHP 语法错误,表示 x 行的错误会停止解析和执行程序。

如何将数据导出到 Excel 文件中?

使用PhpSpreadsheet库,https://phpspreadsheet.readthedocs.io/en/latest/

使用csv,https://gitee.com/daiji111_admin/MySmarty/blob/master/doc/47%20csv%E6%A0%BC%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%AF%BC%E5%87%BA.md

file_get_contents () 函数的作用是?

file_get_contents — 将整个文件读入一个字符串

file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。

如何使用 PHP 脚本 连接 MySQL 数据库?

mysqli

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

pdo

$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

mysql_pconnect () 函数的用途为?

mysql_pconnect — 打开一个到 MySQL 服务器的持久连接

当脚本执行完毕后到 SQL 服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close() 不会关闭由 mysql_pconnect() 建立的连接)。

如何在 PHP 中处理 MySQL 的结果集?

mysql_result — 取得结果数据

推荐使用高性能的替代函数:mysql_fetch_row(),mysql_fetch_array(),mysql_fetch_assoc() 和 mysql_fetch_object()。

  • PDOStatement::fetch() - 从结果集中获取下一行
  • PDOStatement::fetchAll() - 返回一个包含结果集中所有行的数组
  • PDOStatement::fetchColumn() - 从结果集中的下一行返回单独的一列。

如何知晓结果集返回的行数?

PDOStatement::rowCount — 返回受上一个 SQL 语句影响的行数

PDOStatement::rowCount() 返回上一个由对应的 PDOStatement 对象执行DELETE、 INSERT、或 UPDATE 语句受影响的行数。

如果上一条由相关 PDOStatement 执行的 SQL 语句是一条 SELECT 语句,有些数据可能返回由此语句返回的行数。但这种方式不能保证对所有数据有效,且对于可移植的应用不应依赖于此方式。