PHP面试常用知识

合集下载

php_高级面试题_带答案(3篇)

php_高级面试题_带答案(3篇)

引言在PHP高级开发工程师的面试中,考察的不仅仅是基础语法和编程能力,还包括对框架、设计模式、性能优化、安全机制等方面的深入理解。

以下是一系列PHP高级面试题及其答案,旨在帮助准备面试的候选人更好地展示自己的技术实力。

---1. 什么是PHP的魔术方法?请举例说明。

答案:魔术方法是PHP中特殊的方法,以两个下划线`__`开头和结尾。

它们在对象被创建、销毁、赋值、调用等情况下自动被调用。

以下是一些常见的魔术方法:- `__construct()`:在对象创建时被调用。

- `__destruct()`:在对象销毁时被调用。

- `__get($name)`:访问不存在的属性时被调用。

- `__set($name, $value)`:设置不存在的属性时被调用。

- `__isset($name)`:检查属性是否设置时被调用。

- `__unset($name)`:删除属性时被调用。

- `__call($name, $arguments)`:调用不存在的方法时被调用。

- `__toString()`:当对象被转换为字符串时被调用。

举例:```phpclass MagicMethodExample {public $property;public function __construct($value) {$this->property = $value;public function __toString() {return "Property Value: " . $this->property;}}$example = new MagicMethodExample("Hello");echo $example; // 输出: Property Value: Hello```---2. 解释一下PHP中的闭包(Closure)和匿名函数(Anonymous Function)的区别。

php面试题100(3篇)

php面试题100(3篇)

第1篇PHP基础知识1. 什么是PHP?2. PHP的主要特点是什么?3. PHP与HTML的区别是什么?4. PHP是客户端脚本语言还是服务器端脚本语言?5. PHP可以运行在哪些操作系统上?PHP环境搭建6. 如何安装PHP环境?7. 如何配置PHP的扩展模块?8. 如何设置PHP的配置文件(php.ini)?9. 如何使用XAMPP、WAMP或MAMP等集成开发环境(IDE)?10. 如何调试PHP代码?PHP基本语法11. PHP脚本如何开始和结束?12. 如何声明变量?13. PHP的数据类型有哪些?14. 如何使用常量?15. 如何使用注释?控制结构16. 什么是条件语句?17. 如何使用if、else、switch语句?18. 什么是循环语句?19. 如何使用for、while、do-while循环?20. 什么是break和continue语句?函数21. 什么是函数?22. 如何定义和使用自定义函数?23. 什么是内置函数?24. 如何传递参数到函数?25. 什么是返回值?数组26. 什么是数组?27. 如何声明和初始化数组?28. 如何遍历数组?29. 数组的常用操作有哪些?30. 什么是关联数组?对象31. 什么是面向对象编程(OOP)?32. 如何定义类和对象?33. 什么是构造函数和析构函数?34. 如何使用封装、继承和多态?35. 如何定义和调用方法?数据库操作36. PHP中常用的数据库类型有哪些?37. 如何连接MySQL数据库?38. 如何执行SQL查询?39. 如何处理数据库结果集?40. 如何使用预处理语句?文件操作41. 如何读取和写入文件?42. 如何打开、关闭文件?43. 如何使用文件指针?44. 如何处理文件上传?45. 如何使用目录操作函数?表单处理46. 如何创建HTML表单?47. 如何获取表单数据?48. 如何验证表单数据?49. 如何使用POST和GET方法?50. 如何处理文件上传表单?安全性51. 什么是SQL注入?52. 如何防止SQL注入?53. 什么是XSS攻击?54. 如何防止XSS攻击?55. 什么是CSRF攻击?56. 如何防止CSRF攻击?错误处理57. PHP中如何处理错误?58. 什么是错误报告级别?59. 如何使用try-catch语句?60. 如何自定义错误处理函数?PHP版本和扩展61. PHP有几个主要版本?62. PHP7相比PHP5有哪些改进?63. 如何安装PHP扩展?64. 常用的PHP扩展有哪些?65. 如何使用pecl安装扩展?其他66. 什么是命名空间?67. 如何使用类和对象?68. 什么是序列化和反序列化?69. 如何使用session?70. 什么是cookies?71. 如何使用cURL?72. 什么是SOAP和RESTful API?73. 如何使用JSON和XML?74. 什么是CLI(命令行界面)脚本?75. 如何使用Apache模块?76. 如何使用PHP-GTK?77. 如何使用PHP-CLI?78. 如何使用PHP-FPM?79. 什么是PHP安全模式?80. 什么是PHP优化器(OPcache)?高级主题81. 如何实现会话管理?82. 如何实现缓存?83. 如何实现日志记录?84. 如何实现缓存和日志记录?85. 如何实现用户认证和授权?86. 如何实现RESTful API?87. 如何实现RESTful API的安全性?88. 如何实现缓存和日志记录?89. 如何实现分布式系统?90. 如何实现负载均衡?91. 如何实现消息队列?92. 如何实现微服务架构?93. 如何实现区块链技术?94. 如何实现人工智能和机器学习?95. 如何实现区块链技术?96. 如何实现大数据处理?97. 如何实现云计算?98. 如何实现边缘计算?99. 如何实现物联网(IoT)?100. 如何实现区块链技术?以上是100道PHP面试题的概览,每道题都需要根据实际情况进行深入研究和扩展。

php面试题及答案100道(3篇)

php面试题及答案100道(3篇)

第1篇PHP基础知识1. 什么是PHP?- PHP是一种开源的、服务器端的脚本语言,主要用于网页开发。

2. PHP有哪些优点?- 灵活性高、易于学习、开源免费、广泛的社区支持。

3. PHP的运行环境有哪些?- Apache、Nginx、IIS等服务器软件。

4. PHP的版本有哪些?- PHP 5.x、PHP 7.x、PHP 8.x。

5. 如何检查PHP版本?- 使用`phpinfo()`函数或者在PHP文件中添加`echo phpversion();`。

6. 什么是PHP的超全局变量?- `$GLOBALS`、`$_SERVER`、`$_GET`、`$_POST`、`$_FILES`等。

7. 如何设置PHP的默认编码?- 在PHP配置文件(php.ini)中设置`default_charset`。

8. 什么是PHP的数据类型?- 整数、浮点数、字符串、布尔值、数组、对象、资源、NULL。

9. 如何定义一个PHP变量?- 使用$符号后跟变量名。

10. 什么是变量作用域?- 全局作用域、局部作用域、静态作用域。

基本语法11. 如何注释PHP代码?- 单行注释:`//`- 多行注释:`/ /`12. 如何比较两个字符串?- 使用`==`或`===`。

13. 如何遍历数组?- 使用`foreach`循环。

14. 如何定义一个函数?- 使用`function`关键字。

15. 如何调用一个函数?- 使用函数名后跟括号。

16. 如何传递参数给函数?- 在函数定义时列出参数,调用时传递值。

17. 如何定义一个类?- 使用`class`关键字。

18. 如何创建一个对象?- 使用`new`关键字。

19. 如何访问对象属性和方法?- 使用`$object->property`和`$object->method();`。

20. 什么是魔术方法?- PHP中的特殊方法,如`__construct()`、`__destruct()`、`__get()`等。

php最近两年面试题(3篇)

php最近两年面试题(3篇)

第1篇一、PHP基础面试题1. 请解释PHP的全称及其代表的意义。

答:PHP的全称是PHP: Hypertext Preprocessor,最初代表的是Personal Home Page。

2. PHP中的变量以什么符号开头?答:PHP中的变量以"$"符号开头,后跟变量名。

3. PHP支持哪些数据类型?答:PHP支持多种数据类型,包括字符串、整数、浮点数、布尔值、数组、对象、NULL以及资源。

4. 如何连接MySQL数据库?答:可以使用mysqli或PDO扩展连接MySQL数据库。

5. 如何定义和调用函数?答:定义函数使用function关键字,调用时直接使用函数名。

6. 会话在PHP中有什么作用?答:会话用于在多个页面请求之间存储用户信息。

可以使用session_start()函数启动会话,并使用SESSION超全局变量存取会话数据。

7. include和require有什么区别?答:include在文件无法找到时会生成一个警告并继续执行,而require则会生成一个致命错误并停止脚本执行。

8. 如何处理PHP中的错误和异常?答:可以使用try-catch块来处理错误和异常。

9. 如何获取和处理表单数据?答:可以使用GET或POST超全局数组获取和处理表单数据。

10. 如何实现单例模式?答:单例模式是一种设计模式,用于确保一个类只有一个实例,并提供一个访问它的全局访问点。

实现单例模式的方法有很多,以下是一个简单的示例:```phpclass Singleton {private static $instance = null;private function __construct() {}public static function getInstance() {if (self::$instance === null) {self::$instance = new Singleton();}return self::$instance;}private function __clone() {}private function __wakeup() {}}```二、PHP高级面试题1. 如何实现PHP的不带cookie函数下发cookie?答:可以通过设置HTTP响应头来实现,如下所示:```phpheader("Set-Cookie: name=value");```2. 对于分布式系统,如何保存session值?答:可以通过以下几种方式保存session值:(1)使用Redis作为session存储,配置session.save_handler为redis。

php6年面试题(3篇)

php6年面试题(3篇)

第1篇第一部分:基础知识1. PHP 基础- 请简述 PHP 是什么,以及它的主要应用场景。

- PHP 有哪些常见的版本,它们之间的主要区别是什么?- 请解释 PHP 的生命周期,从脚本加载到执行再到输出的整个过程。

2. 变量和数据类型- PHP 有哪些基本的数据类型?请分别举例说明。

- 如何在 PHP 中声明一个变量?变量命名规则是什么?- 什么是类型提示?在 PHP 中如何使用类型提示?3. 运算符和表达式- PHP 支持哪些运算符?请举例说明算术运算符、比较运算符、逻辑运算符等。

- 什么是表达式?请给出一个表达式的例子,并解释其计算过程。

4. 控制结构- PHP 中的条件语句有哪些?请分别给出 `if`、`switch` 等语句的例子。

- 循环语句有哪些?请分别给出 `for`、`while`、`do...while` 等语句的例子。

- 什么是异常处理?在 PHP 中如何使用 `try...catch` 结构?5. 函数和数组- 什么是函数?请解释函数的定义、调用以及作用域。

- PHP 中的数组有哪些类型?如何声明、访问和操作数组?- 什么是关联数组?请举例说明如何使用关联数组。

6. 面向对象编程(OOP)- 什么是面向对象编程?请解释类、对象、继承、封装和多态的概念。

- 在 PHP 中如何定义一个类?如何创建对象?- 什么是构造函数和析构函数?它们的作用是什么?7. 文件和目录操作- 请解释 PHP 中如何读取和写入文件。

- 如何在 PHP 中列出目录内容?如何创建、删除目录和文件?- 什么是文件权限?如何设置和修改文件权限?第二部分:进阶知识1. 数据库操作- 请简述 PHP 中常用的数据库类型,如 MySQL、SQLite 等。

- 如何在 PHP 中连接数据库?请给出一个使用 PDO 或 MySQLi 连接数据库的例子。

- 请解释 SQL 语句的基本用法,如 SELECT、INSERT、UPDATE、DELETE 等。

php面试题库100题(3篇)

php面试题库100题(3篇)

第1篇一、基础知识1. PHP是什么?请简要描述其特点和用途。

2. 什么是PHP的超全局变量?请列举几个常见的超全局变量。

3. 如何区分GET和POST方法?它们各自有什么优缺点?4. 简述PHP中的面向对象编程(OOP)的基本概念,如封装、继承、多态。

5. 请解释PHP中的魔术引用(Magic Quotes)和为什么它已被弃用。

6. 什么是命名空间?它在PHP中的作用是什么?7. 简述PHP中的数据类型,如整数、浮点数、字符串、布尔值等。

8. 如何定义一个函数?请给出一个示例。

9. 什么是数组?如何在PHP中创建和操作数组?10. 请解释PHP中的关联数组与索引数组之间的区别。

二、语法与构造11. 如何声明一个常量?请给出一个示例。

12. 如何使用条件语句(如if、else、switch)进行逻辑判断?13. 如何使用循环语句(如for、while、do-while)执行重复操作?14. 如何使用函数参数传递值和引用?请举例说明。

15. 请解释PHP中的类型转换,如从字符串到整数,从整数到布尔值等。

16. 什么是类型提示?在PHP 7及以后版本中它有什么作用?17. 如何处理PHP中的错误和异常?请使用try-catch语句举例。

18. 如何使用字符串函数,如strlen、trim、strpos?19. 请解释PHP中的魔术常量,如__LINE__、__FILE__等。

20. 如何使用数组函数,如array_merge、array_slice、array_reverse?三、面向对象编程21. 如何定义一个类?请给出一个示例。

22. 如何创建类的实例?请举例说明。

23. 请解释构造函数和析构函数在类中的作用。

24. 如何实现类的继承?请举例说明。

25. 什么是接口和抽象类?它们在PHP中的作用是什么?26. 如何使用封装和访问修饰符(如public、protected、private)来控制类的访问权限?27. 请解释PHP中的魔术方法,如__get、__set、__construct等。

php现场面试题(3篇)

第1篇第一部分:基础知识1. PHP是什么?- 请简要描述PHP是什么,它的主要用途是什么。

2. PHP的版本更新历史- 请列举至少三个PHP的主要版本,并简要说明每个版本的主要更新和改进。

3. PHP的运行环境- 请解释PHP运行的基本环境需要哪些组件,如服务器(如Apache、Nginx)、数据库(如MySQL、PostgreSQL)等。

4. PHP的数据类型- 请列举PHP中的所有基本数据类型,并解释它们之间的区别。

5. 变量声明- 在PHP中如何声明变量?请展示不同变量的声明方式。

6. 运算符- 请列举PHP中的运算符类型,并举例说明每种运算符的使用。

7. 条件语句- 请写出PHP中的if、else、switch语句的基本用法。

8. 循环语句- 请列举PHP中的循环语句(如for、while、do-while)并解释它们的用法。

9. 函数- 在PHP中如何定义和调用函数?请举例说明。

10. 数组- 请解释PHP中数组的类型,如索引数组和关联数组,并展示如何创建和操作数组。

11. 字符串处理- 请列举至少五个PHP中处理字符串的函数,并解释它们的作用。

12. 文件操作- 在PHP中如何进行文件读取和写入操作?请展示代码示例。

第二部分:面向对象编程(OOP)1. 面向对象编程的基本概念- 请解释面向对象编程的基本概念,如类、对象、封装、继承、多态等。

2. 如何定义一个PHP类- 请展示如何定义一个简单的PHP类,包括属性和方法的声明。

3. 构造函数和析构函数- 请解释构造函数和析构函数在PHP中的作用,并展示如何使用。

4. 继承- 请解释PHP中的继承机制,并展示如何创建一个子类继承自一个父类。

5. 多态- 请解释多态的概念,并展示如何使用PHP中的多态。

6. 接口- 请解释PHP中的接口概念,并展示如何定义和使用接口。

7. 魔术方法- 请列举PHP中的魔术方法,并解释它们的作用。

第三部分:高级特性1. 命名空间- 请解释PHP中命名空间的概念,并展示如何使用命名空间。

php面试题试题及答案(3篇)

第1篇一、基础语法与变量1. 问题:PHP中的变量命名规则是什么?答案:PHP中的变量命名规则如下:- 变量名必须以字母或下划线开头。

- 变量名可以包含字母、数字和下划线。

- 变量名是区分大小写的。

- 变量名不能包含空格或点。

2. 问题:如何声明一个PHP变量?答案:在PHP中,可以使用以下方式声明一个变量:```php$variable = "Hello, World!";```或者简写为:```php$variable = "Hello, World!";```3. 问题:PHP中的变量类型有哪些?答案:PHP中的变量类型包括:- 整数(Integer)- 浮点数(Float)- 字符串(String)- 布尔值(Boolean)- 数组(Array)- 对象(Object)- 资源(Resource)- NULL4. 问题:如何检查一个变量的类型?答案:可以使用`gettype()`函数来检查一个变量的类型:```php$var = 10;echo gettype($var); // 输出:integer```二、数据类型转换1. 问题:如何在PHP中进行数据类型转换?答案:在PHP中,可以使用以下方式进行数据类型转换:- 使用类型转换运算符(例如:(int) $var, (float) $var, (string) $var)- 使用`settype()`函数- 使用类型强制转换运算符(例如:$var = (int) $var;)2. 问题:如何将字符串转换为整数?答案:可以使用类型转换运算符或`settype()`函数:```php$string = "123";$int = (int) $string; // 或者 $int = settype($string, "integer"); ```3. 问题:如何将整数转换为字符串?答案:可以使用类型转换运算符:```php$int = 123;$string = (string) $int;```三、条件语句与循环1. 问题:PHP中的条件语句有哪些?答案:PHP中的条件语句包括:- `if`语句- `if...else`语句- `switch`语句2. 问题:如何使用`if`语句?答案:```phpif (条件) {// 条件为真时执行的代码} else {// 条件为假时执行的代码}```3. 问题:如何使用`switch`语句?答案:```phpswitch ($expression) {case 值1:// 当表达式与值1匹配时执行的代码 break;case 值2:// 当表达式与值2匹配时执行的代码 break;default:// 默认情况下执行的代码}```4. 问题:PHP中的循环有哪些?答案:PHP中的循环包括:- `for`循环- `while`循环- `do...while`循环- `foreach`循环5. 问题:如何使用`for`循环?答案:```phpfor (初始化表达式; 条件表达式; 更新表达式) { // 循环体}```四、函数与面向对象编程1. 问题:如何在PHP中定义一个函数?答案:```phpfunction 函数名(参数列表) {// 函数体}```2. 问题:如何调用一个函数?答案:```php函数名(参数列表);```3. 问题:PHP中的函数有哪些返回值?答案:PHP中的函数可以返回以下类型的值:- 字符串(String)- 整数(Integer)- 浮点数(Float)- 布尔值(Boolean)- 数组(Array)- 对象(Object)- 资源(Resource)- NULL4. 问题:如何在PHP中定义一个类?答案:```phpclass 类名 {// 类属性和方法}```5. 问题:如何在PHP中使用构造函数和析构函数?答案:构造函数用于在创建对象时初始化对象,析构函数用于在对象销毁时执行清理工作。

php高级资深面试题(3篇)

第1篇第一部分:PHP基础知识与核心技术1. PHP的运行原理及生命周期- 简述PHP的运行原理,包括请求处理流程。

- 解释PHP的生命周期,从脚本执行到脚本结束的各个阶段。

2. 变量的作用域和生命周期- 描述PHP中变量的作用域(局部作用域、全局作用域、静态作用域等)。

- 解释变量的生命周期及其与作用域的关系。

3. 数据类型和类型转换- 列举PHP中的数据类型,并描述它们的特点。

- 解释类型转换的规则和类型提升的概念。

4. 运算符和表达式- 描述PHP中的运算符,包括算术运算符、比较运算符、逻辑运算符等。

- 解释表达式的作用和如何计算表达式的值。

5. 函数与闭包- 解释函数的定义、调用和作用域。

- 讨论闭包的概念、闭包与函数的区别以及闭包的使用场景。

6. 面向对象编程(OOP)- 阐述OOP的三大特性:封装、继承、多态。

- 描述PHP中的类、对象、构造函数、析构函数、魔术方法等概念。

7. 错误处理和异常- 解释PHP中的错误处理机制,包括错误级别、错误处理器、错误日志等。

- 讨论异常处理的概念、异常抛出、异常捕获和异常处理机制。

8. 命名空间- 解释命名空间的作用和用途。

- 描述如何定义和使用命名空间,以及命名空间的解析规则。

第二部分:PHP高级特性与框架1. Composer的使用与依赖管理- 解释Composer的作用和如何安装和使用Composer。

- 描述如何使用Composer进行依赖管理,包括安装、更新和删除依赖。

2. PSR标准与编码规范- 解释PSR标准的作用和意义。

- 描述几个常见的PSR标准,如PSR-0、PSR-1、PSR-4等。

3. PHP的扩展库与第三方库- 列举一些常用的PHP扩展库,如PDO、MySQLi、Redis等。

- 讨论第三方库的使用场景和选择标准。

4. PHP框架的选择与使用- 解释框架的作用和选择框架的标准。

- 描述几个流行的PHP框架,如Laravel、Symfony、CodeIgniter等,并讨论它们的特点和适用场景。

百度php高级工程师面试题(3篇)

第1篇一、基础知识1. 请解释以下PHP基本概念:(1)变量(2)数据类型(3)常量(4)函数(5)面向对象编程2. 请简述PHP中变量作用域的概念,并举例说明。

3. 请解释以下PHP运算符:(1)算术运算符(2)比较运算符(3)逻辑运算符(4)赋值运算符4. 请解释以下PHP语句:(1)if语句(2)switch语句(3)for循环(4)while循环5. 请解释以下PHP错误处理方法:(1)try-catch(2)set_error_handler(3)error_reporting(1)echo和print(2)isset和empty(3)count和sizeof(4)array_merge和array_intersect二、数据库操作1. 请解释以下MySQL数据库概念:(1)数据库(2)表(3)字段(4)索引2. 请简述以下MySQL查询语句:(1)SELECT(2)INSERT(3)UPDATE(4)DELETE3. 请解释以下MySQL数据库连接方法:(1)mysqli(2)PDO4. 请解释以下MySQL优化方法:(1)索引优化(2)查询优化(3)存储引擎优化(1)事务(2)隔离级别(3)锁机制三、性能优化与调试1. 请简述以下性能优化方法:(1)缓存技术(2)数据库优化(3)代码优化(4)并发处理(5)服务器优化2. 请解释以下性能测试工具:(1)Apache JMeter(2)Locust3. 请解释以下调试方法:(1)日志记录(2)代码审查(3)性能测试4. 请解释以下性能问题诊断方法:(1)CPU占用(2)内存占用(3)磁盘IO四、函数与模块化编程(1)函数定义(2)参数传递(3)返回值(4)变量作用域2. 请解释以下PHP命名空间概念:(1)命名空间定义(2)命名空间使用(3)命名空间别名3. 请解释以下模块化编程概念:(1)模块定义(2)模块依赖(3)模块调用4. 请解释以下设计模式:(1)单例模式(2)工厂模式(3)策略模式五、开源项目与技术栈1. 请介绍你参与过的开源项目,包括项目名称、角色、解决的问题和技术栈。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PHP面试常用知识
PHP面试常用知识
PHP基础知识,新人必备,老人必会。

如果你忘记了,就赶紧拾起来吧。

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。

PHP面试常用知识有哪些?下面是相关的知识,欢迎阅读。

1、php时间处理
a、获取前一天echo date(‘Y-m-d H:i:s’, strtotime(“-1 day”))
b、某个时间的前一天
$date = new DateTime(now());
$date->add(new DateInterval(P10D));
$date->sub(new DateInterval(PT1440M));
2、字符串翻转 strrev
3、mysql关于时间的.函数 now() month() year day dayofweek()
4、截取中文无乱码的方法
5、客户端、服务器变量
$_S ERVER[‘remote_addr’] $_SERVER[’SERVER_ADDR’]
5.1 是否为代理
5.2判断是否为ajax请求
isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']==='XMLHttpRequest';
6、session设置过期时间
session_set_cookie_params(24*3600);
7、常用排序函数
sort rsort ksort krsort natsort
8、字符串的处理,常用数组相关
explode implode
9、常用的html标签处理函数
htmlentities 标签转换为"等
html_entity_decode 转换回来
addslashes
阅读安全那一章节
9.2 入数据库前的处理
mysql_real_escape_string();
10、内存相关函数
memory_get_usage()
memory_get_peak_usage()
memory_limit限制内存使用
11、获取客户端ip,要考虑代理
if($_SERVER[‘http_x_forwarded_for’] != ‘’){
$clientIp = !empty($_SERVER[‘REMOTE_ADDR’]) ? $_SERVER[‘REMOTE_ADDR’] : !empty($_ENV[‘REMOTE_ADD R’]) ? $_ENV[‘REMOTE_ADDR’] : ‘unknown’;
}
12、验证电子邮件
echo preg_match(‘/^[w-.]+@[w-.]+[.w+]+$/’, $email);
13、文件扩展名
parse_url
PHP_URL_SCHEMAPHP_URL_HOSTPORTPATHQUERYFRAGEMEN T
pathinfo basenameextensionfilenamedirname
basename 正则
14、strrchr(str, $delimiter)
HTTP常用知识点
15、http协议常用code
16、http1.1与http1.0的区别
增加了长连接以及复用链接的tcp技能,增加了host(虚拟), cache_control,
16.2 http请求头信息
host,url,method,accept_language,content_length,user_agen t,code,cache_control,tag,expire,server
17、enctype=‘multipart/form-data’
18、setcookie(name,value,expire,path,domain)
19、时区设置date_default_timezone_set(‘Asia/shanghai’)
或者php.ini中修改date.time_zone
20、查看php.ini的位置
phpinfo() | grep php.ini
21、slowlog在php-fpm.ini中设置
request_slowlog_timeout=1s
slowlog=/path/to/slowlog.log
22、魔术方法
__SET, __GET, __CALL, __toString, __construct, __destruct, __set, __isset, __unset, __autoload, __clone
23、static静态绑定
24、安全模式对系统函数的影响
之所以有安全模式,是为了试图去解决共享web服务器问题而产生的,避免注入脚本去执行脚本等。

但即使禁止了php脚本,攻击人员仍可以使用perl脚本,所以从5.4版本起被废除。

只要影响系统文件相关操作,会判断文件的owner跟当前owner 是否为同一个,为同一个则执行。

25、php中垃圾回收机制
首先变量超出自己的作用域会被自动回收内存,也可以使用unset 主动释放内存。

一次web请求结束后,程序中对象占用的内存也会被释放掉。

26、为何对象支持foreach,原理是啥?
foreach一个对象,是因为对象实现了Iterator接口,或者子接口ArrayIterator。

foreach时实际调用被循环对象的相关方法实现的,接口方法有
rewind,next,current,key,valid
27、安全写一个文件
function write_file($filename, $content){ $file = fopen($filename, 'w+');
while(!flock($file, LOCK_EX)){
}
fwrite($file, $content);
fclose($file);//会释放锁
}
下载全文。

相关文档
最新文档