Tutorial Study Image

PHP面试问题

PHP是一种广泛使用的开源脚本语言。脚本在服务器上执行。PHP用于开发动态和交互式网站。
 

超文本预处理器(Hypertext Preprocessor)

拉斯姆斯·勒多夫 (Rasmus Lerdorf)

每个人以不同的变量编写代码的方式也不同,PHP代码中编写注释是为了理解程序员所编写的代码。注释可以提醒您在编写代码时的想法。

我们可以在PHP中添加单行和多行注释。要在PHP中添加单行注释,我们需要使用“#”或“//”
在行的前面,写在这两个符号中的任何一个后面的行都将被视为PHP中的单行注释。
示例
# hai php
//hello php

要添加多行注释,我们使用 /* */,在此符号内编写的任何内容都将被视为注释。

示例:

/* Welcome to Learn eTutorils */
 

创建网站、桌面应用程序、REST API

 超文本预处理器

PHP是“PHP超文本预处理器”的递归缩写。它是一种服务器端脚本语言,帮助开发人员创建动态网页。PHP支持几乎所有数据库,如Mysql、Oracle等。它有助于充当网站前端(HTML)和网站后端(数据库)之间的桥梁。

PHP是一种弱类型编程语言,因为在PHP中我们不需要定义变量。PHP会根据其值自动将变量转换为其 proper 数据类型。

PHP语法与编程语言 C 或 Perl 非常相似。

1.    能够执行系统函数,如打开、读取、创建文件
2.    能够连接和操作数据库
3.    有权访问和设置 cookie
4.    有助于加密数据
5.    有助于限制网站上的用户
6.    充当网站前端和后端之间的桥梁
 

要在HTML页面中添加PHP脚本,我们需要使用标记标签
1.    <?php     代码脚本          ?>
2.    <?          代码片段        ?>
 

它是PHP配置文件,影响PHP功能。该配置文件在每次PHP初始化时都会读取。

目前使用的PHP版本是7.1或7.2

与PHP 4相比,PHP 5有许多附加功能,其中包括面向对象编程(OOP)功能。

“Rasmus Lerdorf”创建了PHP,他也被称为PHP之父。

在早期,PHP代表个人主页(Personal Home Page)。

PHP使用名为 Zend Engine version 2 的脚本引擎。

几乎所有内容管理系统都支持PHP,但最受欢迎的CMS是
1.    WordPress
2.    Joomla
3.    Magento
4.    Drupal
 

1.    CakePHP
2.    CodeIgniter
3.    Yii 2
4.    Symfony
5.    Zend Framework

在进行PHP解析时,引擎需要一种方法来将PHP代码与页面中的其余代码分开,这被称为转义到PHP。

空白是我们在代码中写入的空格、制表符或任何不可见的东西。PHP对空白不敏感,这意味着它对空白的数量没有问题。

我们可以说PHP是部分区分大小写的。

静态网站意味着每个页面的内容都是硬编码的,不会改变。静态网站中不会有任何数据库。
动态网站:在动态网站中,所有页面或某些页面的内容不会硬编码,而是从数据库中动态加载。PHP将帮助将内容从数据库(后端)加载到网站(前端)。
 

•    标量类型声明
•    飞船操作符
•    声明返回类型
•    空合并运算符 (??)
•    匿名类
•    分组使用声明
•    生成器委托
 

从命令行界面,使用下面这行带有脚本名称的代码来运行PHP文件。
PHP scriptname.php
 

从命令行使用带 –a 的程序
php –a
 

通过使用PHP脚本,我们可以生成HTML代码。此外,我们还可以将HTML中的值传递给PHP代码。

PHP是一种服务器端语言,而JS是一种客户端语言。它们不能协同工作或交互,但它们可以将值传递给PHP,PHP也可以生成一些Javascript代码。

PEAR代表PHP扩展和应用程序存储库(PHP Extension and Application Repository),它通过提供更多代码片段和库来帮助程序员。它是一个框架,包含PHP中的许多可重用组件。

在PHP中,我们有一个特殊的标签用于显示输出,即“<?”开始标签和“?>”结束标签。

PHP不支持多重继承,但它支持单一继承。

在PHP中,为了从一个类继承,我们可以使用关键字“extended”。

Echo 用于在 PHP 中显示输出,包括字符串或多个字符串。它是一个基本的 PHP 语言结构,不需要大括号。

Echo 用于在 PHP 中显示输出,不返回任何值。

Print 用于在PHP中显示输出,如字符串、字符或空白。与echo一样,print不需要大括号。

两者都用于在 PHP 中显示输出,两者都不需要大括号。

区别在于print始终返回1,而echo不返回任何值,因此echo比print快。其次,echo可以显示多个字符串,而print只能显示一个。
 

我们可以在php中使用以下方式声明变量:
$variableName=value;
(变量是一个名称,在某个内存位置保存一个值,以便在程序中使用该值)
 

PHP有8种数据类型:
1.    整数(Integers)
2.    双精度浮点数(Doubles):浮点数
3.    布尔值(Booleans)
4.    空值(Null)
5.    字符串(Strings)
6.    数组(Arrays)
7.    对象(Objects):PHP类的一个实例
8.    资源(Resources):用于外部引用
 

•    具有默认值
•    用$符号表示
•    无需在赋值前声明
•    类似于Perl
•    自动转换类型
•    没有固有类型
 

1.    以下划线或字母开头
2.    变量名中不能使用特殊字符
 

如果我们需要给变量赋值为零或空值,我们必须使用 NULL。Null 是 PHP 中的一种特殊类型,它不区分大小写。
示例:$var = NULL;  或  $var = null;
 

我们可以使用以下方法定义常量:
1.    define() 函数
2.    Const 关键字
在PHP中。定义后,只需调用其名称即可使用常量值。
 

constant() 函数用于在 PHP 中打印常量值。通过使用 constant 函数,它返回常量的值。

语法:constant (name)
注意:常量只能具有标量值,如字符串、数字、布尔值等。
 

这就像 C 语言中的指针概念。$data 存储变量 data 中存储的值,而 $$data 将存储对变量 data 的引用。这意味着一个变量的变量,所以 $$data 的值可以动态改变,而 $data 的值是常量。

魔术常量是PHP中预定义的常量,但它们的值可以在程序中更改,因此被称为魔术常量。
魔术常量的语法以双下划线开头,并以相同的 __magic const__ 结束
 

PHP有九个魔术常量,它们是
•    __LINE__
•    __FILE__
•    __DIR__
•    __FUNCTION__
•    __CLASS__
•    __TRAIT__
•    __METHOD__
•    __NAMESPACE__
•    CLASSNAME ::class
 

魔术常量在编译时而不是运行时处理。此外,它们不区分大小写。

PHP中的数据类型有8种,用于保存不同类型的数据。这8种数据类型又分为3种类型:
1.    标量(Scalar)
?    布尔(Boolean)
?    整型(Integer)
?    浮点型(Float)
?    字符串(String)
2.  复合(Compound)
?    数组(Array)
?    对象(Object)
?    特殊(Special)
?    空值(Null)
?    资源(Resource)
 

在PHP中,我们可以通过两种方法将一行代码注释掉:
1.    // comment
2.    # comment
 

__LINE__ 用于返回文件当前行号。

__FILE__ 将返回执行魔术常量的文件的绝对路径(完整路径)和文件名。

__FUNCTION__ 返回声明和执行魔术常量的函数名。此魔术常量区分大小写。此魔术常量是在PHP版本4.3.0之后添加的。

__CLASS__ 它与函数几乎相同,因为此常量返回声明此类的类名。它也区分大小写。

__METHOD__  常量返回声明此常量的方法的名称。它也区分大小写。

我们需要包含GD库才能使用图像函数。

Imagetypes() 函数在GD库中定义,用于获取图像类型以及GD库支持的图像类型。

PHP中的此函数用于获取图像大小。

为了获取图像的宽度和高度,我们可以使用以下函数:
1.    Imagesx()
2.    Imagesy()
分别。
 

让我们考虑一种情况,如果 require() 函数无法访问文件,它会产生一个错误,导致程序执行停止。但是如果我们使用 include() 函数,它会发出警告,但不会停止程序执行。

1.    For 循环
2.    While 循环
3.    Do-while 循环
4.    Foreach 循环

count() 函数用于计算数组中的元素数量或我们可以计算的其他内容。

header() 函数用于动态页面,我们需要将头部发送到HTML。头部必须在实际输出之前发送。

PHP中的 isset() 函数用于检查变量是否已定义。它检查变量是否不为空。

参数化函数是可以将任意数量的参数传递到PHP中该函数中的函数。
我们传递给函数的参数将作为该函数内部的变量。
 

与C或其他编程语言一样,PHP中的Break用于中断“for循环”或“switch case”。

Continue 用于停止并继续循环执行,跳过循环的其余部分,然后重新开始循环。

PHP中的foreach循环用于数组的概念。它将有助于遍历数组元素。在每次迭代中,数组字段的值被赋值给它的变量。

语法
foreach (array as value)
{
    code to be executed;
}

 

 

这两个函数都将帮助加载PHP文件,但是 require_once() 函数在加载文件之前会检查文件是否已经包含。

我们必须使用 print_r() 函数来打印PHP中变量的信息。

可变长度参数意味着我们可以将任意数量的变量传递给函数。

数组是PHP中的一种复合数据类型,我们可以在其中存储多个值,这些值可以通过索引变量访问。它可以定义为一种数据类型的值集合。

在PHP中,有三种类型的数组,它们是:
1.    索引数组(Indexed Arrays)
2.    关联数组(Associative Arrays)
3.    多维数组(Multidimensional Arrays)
 

索引数组也称为数字数组,是可以通过索引变量(数字值)访问的普通数组,并以线性模型访问数组元素。

这种类型的数组通过字符串值进行索引,不能通过线性增量方法访问。每个键都有一个特定的值。

多维数组是数组的数组。这意味着数组中存储着许多数组的索引。

1.    Array()
2.    Array_change_key_case()
3.    Array_chunk()
4.    Count()
5.    Sort()
6.    Array_reverse()
7.    Array_search()
8.    Array_intersect()
等等
 

索引数组通过数值进行索引,并从0开始递增1。
而在关联数组中,每个元素都有一个字符串索引,不能以线性方法访问。
 

我们可以使用 php.ini 配置文件设置执行时间。要设置无限时间,请在开始时使用 set_time_limit(0) 来设置无限执行时间。

如果在任何一行代码中检测到解析错误,PHP解析器将停止并终止在该行代码处的PHP程序执行。

file_get_contents() 是一个PHP函数,用于读取文件并将其存储到字符串中。

使用 mysqli_connect() 函数,我们可以从 PHP 代码连接到 mysql 数据库。
<?php 
$db= mysqli_connect("主机", "用户名", "密码"); mysqli_select_db($db,"数据库名");
 ?>
 

Mysql_pconnect 用于连接数据库,但不同之处在于连接是持久的,即使PHP脚本结束也不会关闭。PHP 7.0 或更高版本不支持此功能。

在PHP中,这些函数是:
1.    mysqli_fetch_array
2.    mysqli_fetch_assoc
3.    mysqli_fetch_object
4.    mysqli_fetch_row
 

使用 mysqli_num_rows() 函数将返回结果中的行数。

这两个函数都用于收集数据,其中 mysqli_fetch_object() 只返回第一个匹配记录,而 mysqli_fetch_array() 返回所有匹配记录。

为了获取字符串的长度,我们必须使用 strlen() 函数。

1.    Strolower()
2.    Stroupper()
3.    Ucfirst()
4.    Lcfirst()
5.    Ucwords()
6.    Strrev()
7.    Strlen()

要连接两个字符串,我们必须使用点(.)运算符。

在 PHP 中,我们必须使用 strops() 函数在一个字符串中查找另一个字符串或字符。

PHP有两种方法可以从用户或表单接受值,它们是:
1.    GET
2.    POST
 

我们有两种方法在PHP中包含一个文件:
1.    Include
2.    Require
 

两者都用于文件包含,但在 include 中,如果文件未找到,它只会发送一个警告。但在 require 中,它会发送一个致命错误。

Cookie在PHP中通过使用 setcookie() 函数设置。设置后,我们可以通过 $_cookie 访问cookie。

Echo $_cookie[“username’];

会话是一个由PHP引擎创建的逻辑对象,它暂时存储来自用户的数据,以供该用户后续请求使用。它使传输变得容易。

<?php  
Session_register($ur_session_var);  
?>
 

session_start() 是一个 PHP 函数,用于为用户创建会话。当调用该函数时,它会恢复或启动一个新的会话。

PHP中的 session_destroy() 函数将销毁用户的当前会话,如果用户注销或超时。

PHP中有一个函数 is_numeric() 来检查变量中的值是否为数字。

ctype_alnum 是PHP中的一个函数,用于检查给定的变量值是否为字母数字。

使用 empty() 函数检查PHP中给定的变量是否为空。

我们有 unlink() 函数来删除PHP中的文件。

函数 unset() 用于使变量未定义。

函数 getenv() 将有助于检索PHP中环境变量的值。

通过使用 HTTP_USER_AGENT 将有助于检索用户浏览器和操作系统。需要记住,环境变量在使用前应该设置。

PHP中有一个 rand() 函数,它将在用户设置的限制内生成随机数。

通过使用 PHP_SELF 变量,调用相同的脚本。它在提交表单时使用。

PHP中的函数 fopen() 用于打开文件,它有两个参数需要传递:文件名和模式。
fopen("test.txt", "r");