이 기사에서는 기본 지식을 정리하고 PHP 지식 보유량을 향상하는 데 도움이 되는 100가지 일반적인 PHP 인터뷰 질문(공유 답변 포함)을 정리하고 공유합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.
관련 추천: 2022 PHP 면접 질문 요약(모음)
100가지 일반적인 PHP 면접 질문
1) PHP란 무엇인가요?
PHP는 개발자가 동적으로 웹 페이지를 만들 수 있는 스크립트 기반 웹 언어입니다.
2) PHP의 정식 이름은 무엇입니까?
하이퍼텍스트 전처리기.
3) PHP는 어떤 프로그래밍 언어와 비슷합니까?
PHP 구문은 Perl 및 C와 유사합니다.
5) 실제로 사용되는 PHP 버전은 무엇인가요?
버전 7을 권장합니다.
6) 명령줄에서 PHP 스크립트를 실행하는 방법은 무엇입니까?
명령줄 인터페이스(CLI)에서 실행할 스크립트의 파일 이름을 다음과 같이 지정합니다.
php script.php
7) CLI에서 대화형 PHP 셸을 실행하는 방법은 무엇입니까?
다음과 같이 -a 옵션과 함께 PHP CLI 프로그램을 사용하세요.
php -a
8) PHP 코드 블록을 올바르게 시작하고 종료하는 가장 일반적인 두 가지 방법은 무엇입니까?
PHP 스크립트를 시작하고 종료하는 가장 일반적인 두 가지 방법은 다음과 같습니다.
<?php [ --- PHP code---- ] ?> and <? [--- PHP code ---] ?>
9) 출력을 브라우저에 직접 표시하는 방법은 무엇입니까?
출력을 브라우저에 직접 표시하려면 특수 태그 .
11) PHP는 다중 상속을 지원하나요?
PHP는 단일 상속만 지원합니다. PHP 클래스는 extends
키워드를 사용하여 다른 클래스를 상속합니다extends
继承另一个类
12) 使用final
修饰的类和方法代表什么意思?
final
是在PHP5版本引入的,它修饰的类不允许被继承,它修饰的方法不允许被重写。
13) PHP中如何比较两个对象?
在PHP中,我们可以使用运算符==
来比较两个对象是否为同一个类的实例,并且拥有相同的属性和属性值。
还可以是使用运算符===
来比较两个对象是否引用了同一类的同一实例。
14) PHP和HTML是如何交互的?
可以通过PHP脚本生成HTML,还可以将信息从HTML传递到PHP。
15) 通过表单或URL传递值时需要哪种类型的操作?
通过表单或URL传递值,则需要使用htmlspecialchars()
和urlencode()
对它们进行编码和解码。
16) PHP和Javascript是如何交互的?
PHP和Javascript无法直接进行交互,因为PHP是一种服务器端语言,而Javascript是一种浏览器语言。但是,我们可以交换变量,因为PHP可以生成将由浏览器执行的Javascript代码,并且可以通过URL将特定的变量传递回PHP。
17) PHP处理图片需要添加什么扩展?
需要GD库来执行处理图片功能。
18) 函数imagetypes()
的功能?
imagetypes()
给出当前版本的GD-PHP支持的图像格式和类型。
19)获取图片属性(size, width, 和 height)的函数是什么?
获取图片大小size:getimagesize();获取图片宽度width:imagesx();获取图片高度height:imagesy()。
20) include()
和 require()
在执行失败的情况下有什么不同?
include()
将会产生一个警告,不影响后续程序的执行。require()
12) final
로 수정된 클래스 및 메소드를 사용한다는 것은 무엇을 의미합니까?
final
은 PHP5 버전에 도입되었습니다. 수정하는 클래스는 상속이 허용되지 않으며 수정하는 메서드는 재정의가 허용되지 않습니다.
13) PHP에서 두 개체를 비교하는 방법은 무엇입니까?
PHP에서는 ==
연산자를 사용하여 두 개체가 동일한 클래스의 인스턴스인지, 동일한 속성과 속성 값을 갖는지 비교할 수 있습니다. ===
연산자를 사용하여 두 객체가 동일한 클래스의 동일한 인스턴스를 참조하는지 비교할 수도 있습니다.
14) PHP와 HTML은 어떻게 상호작용하나요?
PHP 스크립트를 통해 HTML을 생성할 수 있고 HTML에서 PHP로 정보를 전달할 수도 있습니다.
15) 양식이나 URL을 통해 값을 전달할 때 어떤 유형의 작업이 필요합니까?
양식이나 URL을 통해 값을 전달하려면 htmlspecialchars()
및 urlencode()
를 사용하여 인코딩 및 디코딩해야 합니다.
16) PHP와 Javascript는 어떻게 상호 작용합니까?
PHP는 서버측 언어이고 Javascript는 브라우저 언어이기 때문에 PHP와 Javascript는 직접 상호 작용할 수 없습니다. 그러나 PHP는 브라우저에서 실행될 Javascript 코드를 생성할 수 있고 특정 변수는 URL을 통해 PHP로 다시 전달될 수 있기 때문에 변수를 교환할 수 있습니다.
17) 이미지를 처리하려면 PHP에 어떤 확장 기능을 추가해야 합니까?
이미지 처리 기능을 수행하려면 GD 라이브러리가 필요합니다.
🎜18)imagetypes()
함수의 기능은 무엇인가요? 🎜🎜🎜imagetypes()
는 현재 버전의 GD-PHP에서 지원하는 이미지 형식과 유형을 제공합니다. 🎜🎜🎜19) 이미지 속성(크기, 너비, 높이)을 가져오는 함수는 무엇인가요? 🎜🎜🎜이미지 크기 가져오기: getimagesize(); 이미지 너비 가져오기:imagesx();이미지 높이 가져오기:imagey(); 🎜🎜🎜20) 실행 실패 시 include()
와 require()
의 차이점은 무엇인가요? 🎜🎜🎜include()
는 경고를 생성하며 후속 프로그램 실행에 영향을 미치지 않습니다. require()
는 치명적인 오류를 생성하고 후속 프로그램 실행이 중지됩니다. 🎜🎜🎜21) require()와 require_once()의 주요 차이점은 무엇입니까? 🎜🎜🎜require()와 require_once()는 두 번째 함수가 실행하기 전에 PHP 스크립트가 이미 포함되어 있는지 확인한다는 점을 제외하면 동일한 작업을 수행한다는 것입니다. 🎜🎜(include_once() 및 include()와 동일)🎜🎜🎜22) PHP 스크립트를 사용하여 텍스트를 표시하는 방법은 무엇입니까?🎜🎜🎜다음 두 가지 방법을 사용할 수 있습니다.🎜<!--?php echo "Method 1"; print "Method 2"; ?-->
最常见和常用的方法是将数据转换为Excel支持的格式。例如,可以编写 .csv 文件,例如选择逗号作为字段之间的分隔符,然后使用 Excel 打开文件。
27) file_get_contents() 函数的作用是?
file_get_contents() 可读取文件并将其存储到字符串变量中。
28) 如何使用 PHP 脚本 连接 MySQL 数据库?
为了连接到 MySQL 数据库,必须使用 mysql_connect() 函数:
<!--?php $database = mysqli_connect("HOST", "USER_NAME", "PASSWORD"); mysqli_select_db($database,"DATABASE_NAME"); ?-->
29) mysql_pconnect() 函数的用途为?
mysql_pconnect() 函数确保与数据库的持久连接, 这意味着 PHP 脚本结束时连接不会关闭。
PHP7.0 及以上版本已不支持该函数。
30) 如何在 PHP 中处理 MySQL 的结果集?
可以使用 mysqli_fetch_array, mysqli_fetch_assoc, mysqli_fetch_object or mysqli_fetch_row 函数处理。
31) 如何知晓结果集返回的行数?
mysqli_num_rows() 函数返回了结果集的行数。
32) 哪个函数为我们提供了查询所影响的条数?
mysqli_affected_rows() 返回受SQL查询影响的条目数。
33) mysqli_fetch_object() 和 mysqli_fetch_array() 函数的区别在于?
mysqli_fetch_object() 函数收集第一个单个匹配记录,而 mysqli_fetch_array() 从表中收集所有匹配记录。
34) 如何使用 GET 方法访问通过 URL 发送的数据?
要访问通过 GET 方法发送的数据,我们使用 $ _GET 数组,如下所示:
www.url.com?var=value $variable = $_GET["var"]; 现在将包含 'value'
35) 如何使用 POST 方法访问通过 URL 发送的数据?
要访问以这种方式发送的数据,请使用 $ _POST 数组。
想象一下,当用户单击「提交到帖子」表单时,表单上有一个名为「var」的表单字段,然后您可以像这样访问值:
$_POST["var"];
36) 如何检查给定变量的值为数字?
可以使用专用函数 is_numeric() 来检查它是否为数字。
37) 如何检查给定变量的值为字母和数字字符?
可以使用专用函数 ctype_alnum 来检查它是否为字母数字字符。
38) 如何检查给定变量是否为空?
如果我们要检查变量是否具有值,可以使用 empty() 函数。
39) unlink() 函数的作用是?
unlink() 函数专用于文件系统处理。它用于删除文件。
40) unset() 函数的作用是 ?
unset() 函数专用于变量管理。它将使变量变为未定义。
41) 在将数据存储到数据库之前如何转义数据?
addslashes 函数使我们能够在将数据存储到数据库之前对其进行转义。
42) 如何从字符串中删除转义字符?
使用 stripslash 函数,我们可以删除字符串中的转义字符。
43) 我们如何自动转义传入的数据?
我们必须在PHP的配置文件中启用魔术引号项。
44) get_magic_quotes_gpc() 函数的作用是?
函数 get_magic_quotes_gpc() 告诉我们魔术引号是否已打开。
45) 是否可以从数据中删除 HTML 标签?
strip_tags() 函数使我们能够从HTML标签中清除字符串。
46) 函数中的静态变量有什么用?
静态变量仅在函数中首次定义,并且其值可以在函数调用期间进行如下修改:
<!--?php function testFunction() { static $testVariable = 1; echo $testVariable; $testVariable++; } testFunction(); //1 testFunction(); //2 testFunction(); //3 ?-->
47) 如何定义PHP脚本函数中可访问的变量??
使用 global 关键字。
48) 如何从函数中返回值?
使用指令 ‘return $value;’ 。
49) 用于哈希密码最便捷的哈希方法是什么?
最好使用本身支持几种哈希算法的 crypt() 或支持比 crypt() 更多变体的函数hash(),而不是使用常见的哈希算法,如 MD5、SHA1 或 sha256,因为它们被认为是存在安全问题的。因此,使用这些算法的哈希密码可能会产生漏洞。
50) 哪种加密扩展可以生成和验证数字签名?
PHP-OpenSSL扩展提供了几种加密操作,包括数字签名的生成和验证。
51) 如何在 PHP 脚本中定义常量?
define() 指令允许我们按如下方式定义常量:
define ("ACONSTANT", 123);
52) 如何通过引用传递变量?
为了能够通过引用传递变量,我们在变量前面使用了 & 符号,如下所示$var1=&$var2
53) 整数12和字符串“13”的比较在PHP中是否有效?
“13” 和 12 可以在 PHP 中进行比较,因为它将所有内容都强制转换为整数类型。
54) 如何在PHP中强制转换类型?
输出类型的名称必须在要强制转换的变量前的括号中指定,如下所示:
(int), (integer) - 强制转换为整型
(bool), (boolean) - 强制转换为布尔值
(float), (double), (real) - 强制转换为浮点型
(string) - 强制转换为字符串
(array) - 强制转换为数组
(object) - 强制转换为对象
55) 条件语句何时以 endif 结尾?
当最初的if后面跟着:然后是没有大括号的代码块时。
56) PHP中如何使用三元条件运算符?
它由三个表达式组成:一个条件和两个操作数,它们描述在指定条件为true或false时应执行的指令,如下所示:
Expression_1?Expression_2 : Expression_3;
57) 函数 func_num_args() 的作用是什么?
函数 func_num_args() 用于提供传递给函数的参数数量
58) 如果变量$ var1设置为10,而$ var2设置为字符var1,那么$$ var2的值是多少?
$$var2 包含值10。
59) 通过::访问类意味着什么?
::用于访问不需要对象初始化的静态方法。
60) 在 PHP 中,对象是按值传递还是按引用传递?
对象按值传递。
** 61)是否在类构造函数中隐式调用了Parent
构造函数?**
不,必须显式调用父构造函数,如下所示:
parent::constructor($value)
** 62)__sleep
和__wakeup
有什么区别?**
__sleep
返回所有需要保存的变量的数组,而__wakeup
检索它们。
** 63)更快些吗?**
1-结合以下两个变量:
$ variable1 ='你好';$ variable2 ='世界';$ variable3 = $ variable1.$ variable2;
要么
2- $variable3 = "$variable1$variable2";
$variable3
将包含“你好 世界”。第一个代码比第二个代码快,特别是对于大型数据集。
** 64)会话的定义是什么?**
会话是一个逻辑对象,使我们能够跨多个PHP页面保留临时数据。
** 65)如何在PHP中启动会话?**
使用session_start()
函数可以激活会话。
** 66)如何传播会话ID?**
您可以通过Cookie
或URL
参数传播会话ID。
** 67)永久性Cookie
的含义是什么?**
永久性cookie
永久存储在浏览器计算机上的cookie
文件中。默认情况下,cookies
是临时的,如果我们关闭浏览器,cookies
将被删除。
** 68)会议何时结束?**
会话在PHP脚本完成执行时自动结束,但可以使用session_write_close()
手动结束。
** 69)session_unregister()
和session_unset()
有什么区别?**
session_unregister()
函数从当前会话中注销全局变量,而session_unset()
函数则释放所有会话变量。
** 70)$GLOBALS
是什么意思?**
$GLOBALS
是一个关联数组,包括对当前在脚本的全局范围内定义的所有变量的引用。
71) $ _SERVER
是什么意思?
$_SERVER
是一个包含 Web 服务器创建信息的数组,包括了路径,头部和脚本位置等。
72)$ _FILES
是什么意思?
$_FILES
是一个包含通过 HTTP POST 方式上传到当前脚本的项目的数组。
73)$ _FILES ['userfile'] ['name' ]
和 $ _FILES ['userfile'] ['tmp_name']
有什么区别
$ _FILES ['userfile'] ['name']
表示客户端文件的原始名称,
$_FILES['userfile']['tmp_name']
表示服务器上存储的文件的临时文件名。
*74) 上传文件出问题时,如何获取错误信息 *
$_FILES['userfile']['error']
包括了与上传文件有关的错误代码。
75)如何更改要上传的文件大小的最大值?
可通过更改 php.ini
中的 upload_max_filesize
来更改要上传的文件的最大大小。
76)$ _ENV
是什么意思?
通过环境方式传递给当前脚本的变量的数组。
77)$ _COOKIE
是什么意思?
通过 HTTP Cookies 方式传递给当前脚本的变量的数组。
78)变量的作用域是什么意思?
变量的作用域定义了变量的环境上下文。在大多数情况下,PHP 变量只有一个变量域。这一作用域也涵盖了 include
与 require
的文件。
79)’BITWISE AND’ 运算符和 ‘LOGICAL AND’ 运算符之间有什么区别?
$a and $b
- 只有在 $a
和 $b
都为 true
的情况下才为 true
$a & $b
- 把 $a
和 $b
中都为 1 的位设为 1
80)两个主要的字符串运算符是什么?
.
运算符返回左右两边字符串的拼接结果。 .=
运算符将右边的结果附加到左边的参数上。
81) 数组运算符 ‘===’ 是什么意思?
$a === $b 如果 $a 和 $b 具有相同顺序和相同类型的键/值对,则为 TRUE 。
82) $a != $b 和 $a !== $b有什么区别?
!= 表示不等于 ( 如果 $a 不等于 $b 则为TRUE) ; !== 表示 不全等 ( 如果$a 不完全等于 $b则为TRUE).
83) 如何确定 PHP 变量是否是某个类的实例化对象?
我们用 instanceof 能够验证 PHP 变量是否是某个类的实例话对象。
84) goto 语句有什么用?
goto语句可以放置在PHP程序中以启用跳转。 目标由后跟冒号的标签指向,指令被指定为goto语句,后跟所需的目标标签。
85) Exception::getMessage 和 Exception:: getLine有什么区别?
Exception::getMessage 让我们得到异常消息, Exception::getLine 让我们得到发生异常的行。
86) 表达式 Exception::__toString 是什么意思?
Exception::__toString 给出异常的字符串表示形式。
87) 如何解析配置文件?
函数 parse_ini_file() 使我们能够加载在文件名中指定的 ini 文件,并以关联数组的形式返回其中的设置。
88) 我们如何确定变量是否已经设置?
布尔函数 isset 确定变量是否已经设置并且该变量不是NULL。
89) 函数 strstr() 和 stristr() 有什么区别?
字符串函数 strstr(全部字符串, 要查找的字符串) 返回从首次出现到全部字符串结束的部分字段串。 这个函数是区分大小写的。 stristr() 除了不区分大小写之外,与 strstr() 完全相同。
90) for 和 foreach 有什么区别?
for 表示如下:
for (expr1; expr2; expr3)
expr1 在开头执行一次。 在每次迭代中,expr2 都会被评估。 如果评估结果是 TRUE, 循环继续, 并执行 for 中的语句。 如果评估结果是 FALSE, 循环结束。expr3 在每次迭代结束时进行测试。
但是,foreach提供了一种遍历数组的简便方法,并且仅与数组和对象一起使用。
91) 是否可以提交带有专用按钮的表单?
可以使用 document.form.submit() 函数提交表单。 例如:
92) ereg_replace() 和 eregi_replace()有什么区别?
函数eregi_replace() 与 ereg_replace() 相同,只是在匹配字母字符时忽略大小写区别。
93) 是否可以保护查询字符串中的特殊字符?
是的, 我们使用 urlencode() 函数 来保护特殊字符。
94) PHP 中可能出现的三类错误是什么?
三类基本错误类别是: 通知 (非关键错误)、警告 (严重错误) 和 致命错误 (严重错误)。
95) 字符串 .34 和 .34 有什么区别
.34 是八进制 34 , .34 是十六进制 34.
96) 我们如何通过页面之间的导航传递变量?
可以使用会话,cookie 或隐藏的表单字段在 PHP 页面之间传递变量。
97) 是否可以延长 PHP 脚本的执行时间
使用 set_time_limit(int seconds) 可以延长 PHP 脚本的执行时间。 默认限制为30秒。
98) 是否可以销毁 Cookie ?
是的,可以通过设置cookie的过期时间来实现。
99) PHP中的默认会话时间是什么?
php中的默认会话时间是直到浏览器关闭为止。
100) 是否可以在 PHP中 使用 COM 组件?
是的, 可以在框架中提供的 PHP 脚本中集成(分布式)组件对象模型组件((D)COM)。
101) 解释是否可以在多个 PHP 项目之间共享单个 memcache 实例?
예, 여러 프로젝트 간에 Memcache 인스턴스를 공유할 수 있습니다. Memcache는 하나 이상의 서버에서 실행할 수 있는 메모리 저장 공간입니다. 특정 인스턴스 집합과 통신하도록 클라이언트를 구성할 수도 있습니다. 따라서 동일한 호스트에서 두 개의 서로 다른 Memcache 프로세스를 실행할 수 있지만 완전히 독립적입니다. 데이터를 분할하지 않은 경우에는 데이터를 가져오거나 가져올 인스턴스를 알아야 합니다.
102) PHP를 변경할 때 Memcached를 어떻게 업데이트하는지 설명해주세요.
PHP가 변경되면
캐시 재설정: 첫 번째 방법과 유사하지만, 그 대신 키를 삭제하고 다음 데이터 플러시 캐시 요청을 기다리는 중 삽입 또는 업데이트 후에 값을 재설정합니다.
원본주소 : https://www.guru99.com/php-interview-questions-answers.html
번역주소 : https://learnku.com/php/t/38272
추천학습 : 《PHP 비디오 튜토리얼》
위 내용은 지식 보유량을 강화하기 위한 100가지 일반적인 PHP 인터뷰 질문(분석 포함)!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!