资源描述
PHP 简介
PHP 是服务器端脚本语言。
您应当具备的基础知识
在继续学习之前,您需要对以下知识有基本的了解:
· HTML
· CSS
如果您希望首先学习这些项目,请在我们的 首页 访问这些教程。
PHP 是什么?
· PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。
· PHP 脚本在服务器上执行。
· PHP 可免费下载使用。
PHP 对初学者而言简单易学。
PHP 也为专业的程序员提供了许多先进的功能。
PHP 文件是什么?
· PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
· PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
· PHP 文件的默认文件扩展名是 ".php"
PHP 能做什么?
· PHP 可以生成动态页面内容
· PHP 可以创建、打开、读取、写入、关闭服务器上的文件
· PHP 可以收集表单数据
· PHP 可以发送和接收 cookies
· PHP 可以添加、删除、修改您的数据库中的数据
· PHP 可以限制用户访问您的网站上的一些页面
· PHP 可以加密数据
通过 PHP,您不再限于输出 HTML。您可以输出图像、PDF 文件,甚至 Flash 电影。您还可以输出任意的文本,比如 XHTML 和 XML。
为什么使用 PHP?
· PHP 可在不同的平台上运行(Windows、Linux、Unix、Mac OS X 等)
· PHP 与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS 等)
· PHP 提供了广泛的数据库支持
· PHP 是免费的,可从官方的 PHP 资源下载它:
· PHP 易于学习,并可高效地运行在服务器端
PHP 安装
您需要做什么?
为了开始使用 PHP,您可以:
· 找一个支持 PHP 和 MySQL 的 Web 主机
· 在您自己的 PC 机上安装 Web 服务器,然后安装 PHP 和 MySQL
使用支持 PHP 的 Web 主机
如果您的服务器支持 PHP,那么您不需要做任何事情。
只要在您的 web 目录中创建 .php 文件即可,服务器将自动为您解析这些文件。
您不需要编译任何软件,或安装额外的工具。
由于 PHP 是免费的,大多数的 Web 主机都提供对 PHP 的支持。
在您自己的 PC 机上建立 PHP
然而,如果您的服务器不支持 PHP,您必须:
· 安装 Web 服务器
· 安装 PHP
· 安装数据库,比如 MySQL
官方 PHP 网站(PHP.net)有 PHP 的安装说明:
PHP 服务器组件
对于初学者建议使用集成的服务器组件,它已经包含了 PHP、Apache、Mysql 等服务,免去了开发人员将时间花费在繁琐的配置环境过程。
WampServer
Window 系统可以使用 WampServer,下载地址:
WampServer 安装也简单,你只需要一直点击 "Next" 就可以完成安装了。
XAMPP
XAMPP 支持 Mac OS 和 Window 系统,下载地址:https://www.apachefriends.org/zh_cn/index.html。
IDE (Integrated Development Environment,集成开发环境)
Eclipse for PHP(免费)
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台(如果未安装JDK,则需要先 下载 JDK 安装)。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
支持 Window、Linux 和 Mac OS 平台。
Eclipse for PHP 官方下载地址:http://www.eclipse.org/downloads/packages/eclipse-php-developers/heliosr
PhpStorm(收费)
PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。
PhpStorm 非常适合于PHP开发人员及前端工程师。提供诸于:智能HTML/CSS/JavaScript/PHP编辑、代码质量分析、版本控制集成(SVN、GIT)、调试和测试等功能。
支持 Window、Linux 和 Mac OS 平台。
PhpStorm 官方下载地址:
PHP 语法
PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器。
基本的 PHP 语法
PHP 脚本可以放在文档中的任何位置。
PHP 脚本以 <?php 开始,以 ?> 结束:
<?php
// PHP 代码
?>
PHP 文件的默认文件扩展名是 ".php"。
PHP 文件通常包含 HTML 标签和一些 PHP 脚本代码。
下面,我们提供了一个简单的 PHP 文件实例,它可以向浏览器输出文本 "Hello World!":
实例
<!DOCTYPE html>
<html>
<body>
<h1>My first PHP page</h1>
<?php
echo "Hello World!";
?>
</body>
</html>
运行实例 »
PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。
通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print。
PHP 中的注释
实例
<!DOCTYPE html>
<html>
<body>
<?php
// 这是 PHP 单行注释
/*
这是
PHP 多行
注释
*/
?>
</body>
</html>
运行实例 »
PHP 变量
变量是用于存储信息的"容器":
实例
<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>
运行实例 »
与代数类似
x=5
y=6
z=x+y
在代数中,我们使用字母(如 x),并给它赋值(如 5)。
从上面的表达式 z=x+y ,我们可以计算出 z 的值为 11。
在 PHP 中,这些字母被称为变量。
变量是用于存储数据的容器。
PHP 变量
与代数类似,可以给 PHP 变量赋予某个值(x=5)或者表达式(z=x+y)。
变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 age、carname、totalvolume)。
PHP 变量规则:
· 变量以 $ 符号开始,后面跟着变量的名称
· 变量名必须以字母或者下划线字符开始
· 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
· 变量名不能包含空格
· 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
PHP 语句和 PHP 变量都是区分大小写的。
创建(声明)PHP 变量
PHP 没有声明变量的命令。
变量在您第一次赋值给它的时候被创建:
实例
<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>
运行实例 »
在上面的语句执行中,变量 txt 将保存值 Hello world!,且变量 x 将保存值 5。
注释:当您赋一个文本值给变量时,请在文本值两侧加上引号。
PHP 是一门弱类型语言
在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型。
PHP 会根据变量的值,自动把变量转换为正确的数据类型。
在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
PHP 变量作用域
变量的作用域是脚本中变量可被引用/使用的部分。
PHP 有四种不同的变量作用域:
· local
· global
· static
· parameter
局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
实例
<?php
$x=5; // 全局变量
function myTest()
{
$y=10; // 局部变量
echo "<p>测试函数内变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
}
myTest();
echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
?>
运行实例 »
在以上实例中 myTest() 函数定义了 $x 和 $y 变量。 $x 变量在函数外声明,所以它是全局变量 , $y 变量在函数内声明所以它是局部变量。
当我们调用myTest()函数并输出两个变量的值, 函数将会输出局部变量 $y 的值,但是不能输出 $x 的值,因为 $x 变量在函数外定义,无法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用 global 关键字。
然后我们在myTest()函数外输出两个变量的值,函数将会输出全局部变量 $x 的值,但是不能输出 $y 的值,因为 $y 变量在函数中定义,属于局部变量。
你可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。
PHP global 关键字
global 关键字用于函数内访问全局变量。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
实例
<?php
$x=5;
$y=10;
function myTest()
{
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
运行实例 »
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
上面的实例可以写成这样:
实例
<?php
$x=5;
$y=10;
function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y;
?>
运行实例 »
Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。
要做到这一点,请在您第一次声明变量时使用 static 关键字:
实例
<?php
function myTest()
{
static $x=0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
运行实例 »
然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
注释:该变量仍然是函数的局部变量。
参数作用域
参数是通过调用代码将值传递给函数的局部变量。
参数是在参数列表中声明的,作为函数声明的一部分:
实例
<?php
function myTest($x)
{
echo $x;
}
myTest(5);
?>
PHP 5 echo 和 print 语句
在 PHP 中有两个基本的输出方式: echo 和 print。
本章节中我们会详细讨论两个语句的用法,并在实例中演示如何使用 echo 和 print。
PHP echo 和 print 语句
echo 和 print 区别:
· echo - 可以输出一个或多个字符串
· print - 只允许输出一个字符串,返回值总为 1
提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
PHP echo 语句
echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。
显示字符串
下面的实例演示了如何使用 echo 命令输出字符串(字符串可以包含 HTML 标签):
实例
<?php
echo "<h2>PHP is fun!</h2>";
echo "Hello world!<br>";
echo "I'm about to learn PHP!<br>";
echo "This", " string", " was", " made", " with multiple parameters.";
?>
尝试一下 »
显示变量
下面的实例演示了如何使用 echo 命令输出变量和字符串:
实例
<?php
$txt1="Learn PHP";
$txt2="w3cschool.cc";
$cars=array("Volvo","BMW","Toyota");
echo $txt1;
echo "<br>";
echo "Study PHP at $txt2";
echo "My car is a {$cars[0]}";
?>
尝试一下 »
PHP print 语句
print 同样是一个语言结构,可以使用括号,也可以不使用括号: print 或 print()。
显示字符串
下面的实例演示了如何使用 print 命令输出字符串(字符串可以包含 HTML 标签):
实例
<?php
print "<h2>PHP is fun!</h2>";
print "Hello world!<br>";
print "I'm about to learn PHP!";
?>
尝试一下 »
显示变量
下面的实例演示了如何使用 print 命令输出变量和字符串:
实例
<?php
$txt1="Learn PHP";
$txt2="w3cschool.cc";
$cars=array("Volvo","BMW","Toyota");
print $txt1;
print "<br>";
print "Study PHP at $txt2";
print "My car is a {$cars[0]}";
?>
尝试一下 »
PHP 5 数据类型
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
PHP 字符串
一个字符串是一串字符的序列,就像 "Hello world!"。
你可以将任何文本放在单引号和双引号中:
实例
<?php
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;
?>
尝试一下 »
PHP 整型
整数是一个没有小数的数字。
整数规则:
· 整数必须至少有一个数字 (0-9)
· 整数不能包含逗号或空格
· 整数是没有小数点的
· 整数可以是正数或负数
· 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
在以下实例中我们将测试不同的数字。 PHP var_dump() 函数返回变量的数据类型和值:
实例
<?php
$x = 5985;
var_dump($x);
echo "<br>";
$x = -345; // 负数
var_dump($x);
echo "<br>";
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);
?>
尝试一下 »
PHP 浮点型
浮点数是带小数部分的数字,或是指数形式。
在以下实例中我们将测试不同的数字。 PHP var_dump() 函数返回变量的数据类型和值:
实例
<?php
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
?>
尝试一下 »
PHP 布尔型
布尔型可以是 TRUE 或 FALSE。
$x=true;
$y=false;
布尔型通常用于条件判断。在接下来的章节中你会学到更多关于条件控制的教程。
PHP 数组
数组可以在一个变量中存储多个值。
在以下实例中创建了一个数组, 然后使用 PHP var_dump() 函数返回数组的数据类型和值:
实例
<?php
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);
?>
尝试一下 »
在接下来的章节中你将学到更多关于数组的知识。
PHP 对象
对象数据类型也可以用于存储数据。
在 PHP 中,对象必须声明。
首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:
实例
<?php
class Car
{
var $color;
function Car($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
?>
尝试一下 »
以上实例中PHP关键字this就是指向当前对象实例的指针,不指向任何其他对象或类。
你将会在接下来的章节中学会更多关于对象的知识。
PHP NULL 值
NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。
NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。
可以通过设置变量值为 NULL 来清空变量数据:
实例
<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>
尝试一下 »
PHP 5 常量
常量值被定义后,在脚本的其他任何地方都不能被改变。
PHP 常量
常量是一个简单值的标识符。该值在脚本中不能改变。
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
注意: 常量在整个脚本中都可以使用。
设置 PHP 常量
设置常量,使用 define() 函数,函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
· name:必选参数,常量名称,即标志符。
· value:必选参数,常量的值。
· case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
以下实例我们创建一个 区分大小写的常量, 常量值为 "欢迎访问 R":
实例
<?php
// 区分大小写的常量名
define("GREETING", "欢迎访问 R");
echo GREETING; // 输出 "欢迎访问 R"
echo '<br>';
echo greeting; // 输出 "greeting"
?>
以下实例我们创建一个 不区分大小写的常量, 常量值为 "欢迎访问 R":
实例
<?php
// 不区分大小写的常量名
define("GREETING", "欢迎访问 R", true);
echo greeting; // 输出 "欢迎访问 R"
?>
常量是全局的
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
以下实例演示了在函数内使用常量,即便常量定义在函数外也可以正常使用常量。
实例
<?php
define("GREETING", "欢迎访问 R");
function myTest() {
echo GREETING;
}
myTest(); // 输出 "欢迎访问 R"
?>
PHP 字符串变量
字符串变量用于存储并处理文本。
PHP 中的字符串变量
字符串变量用于包含有字符的值。
在创建字符串之后,我们就可以对它进行操作了。您可以直接在函数中使用字符串,或者把它存储在变量中。
在下面的实例中,我们创建一个名为 txt 的字符串变量,并赋值为 "Hello world!" 。然后我们输出 txt 变量的值:
实例
<?php
$txt="Hello world!";
echo $txt;
?>
运行实例 »
注释:当您赋一个文本值给变量时,请记得给文本值加上单引号或者双引号。
现在,让我们来看看一些常用的操作字符串的函数和运算符。
PHP 并置运算符
在 PHP 中,只有一个字符串运算符。
并置运算符 (.) 用于把两个字符串值连接起来。
下面的实例演示了如何将两个字符串变量连接在一起:
实例
<?php
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?>
上面的代码将输出:Hello world! What a nice day!
提示:在上面的代码中,我们已经使用了两次并置运算符。这是由于我们需要在两个字符串之间插入一个空格。
PHP strlen() 函数
有时知道字符串值的长度是很有用的。
strlen() 函数返回字符串的长度(字符数)。
下面的实例返回字符串 "Hello world!" 的长度:
实例
<?php
echo strlen("Hello world!");
?>
运行实例 »
上面的代码将输出:12
提示:strlen() 常常用在循环和其他函数中,因为那时确定字符串何时结束是很重要的。(例如,在循环中,我们需要在字符串中的最后一个字符之后结束循环。)
PHP strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
下面的实例在字符串 "Hello world!" 中查找文本 "world":
实例
<?php
echo strpos("Hello world!","world");
?>
运行实例 »
上面的代码将输出:6
提示:在上面的实例中,字符串 "world" 的位置是 6。之所以是 6 而不是 7 的原因是,字符串中第一个字符的位置是 0,而不是 1。
PHP 运算符
本章节我们将讨论 PHP 中不同运算符的应用。
在 PHP 中,赋值运算符 = 用于给变量赋值。
在 PHP 中,算术运算符 + 用于把值加在一起。
PHP 算术运算符
运算符
名称
描述
实例
结果
x + y
加
x 和 y 的和
2 + 2
4
x - y
减
x 和 y 的差
5 - 2
3
x * y
乘
x 和 y 的积
5 * 2
10
x / y
除
x 和 y 的商
15 / 5
3
x % y
模(除法的余数)
x 除以 y 的余数
5 % 2
10 % 8
10 % 2
1
2
0
- x
取反
x 取反
- 2
a . b
并置
连接两个字符串
"Hi" . "Ha"
HiHa
以下实例演示了使用不同算术运算符得到的不同结果:
实例
<?php
$x=10;
$y=6;
echo ($x + $y); // 输出16
echo ($x - $y); // 输出4
echo ($x * $y); // 输出60
echo ($x / $y); // 输出1.6666666666667
echo ($x % $y); // 输出4
?>
尝试一下 »
PHP7+ 版本新增整除运算符 intdiv(),使用实例:
<?php
var_dump(intdiv(10, 3));?>
以上实例会输出:
int(3)
PHP 赋值运算符
在 PHP 中,基本的赋值运算符是 "="。它意味着左操作数被设置为右侧表达式的值。也就是说,"$x = 5" 的值是 5。
运算符
等同于
描述
x = y
x = y
左操作数被设置为右侧表达式的值
x += y
x = x + y
加
x -= y
x = x - y
减
x *= y
x = x * y
乘
x /= y
x = x / y
除
x %= y
x = x % y
模(除法的余数)
a .= b
a = a . b
连接两个字符串
以下实例演示了使用不同赋值运算符得到的不同结果:
实例
<?php
$x=10;
echo $x; // 输出10
$y=20;
$y += 100;
echo $y; // 输出120
$z=50;
$z -= 25;
echo $z; // 输出25
$i=5;
$i *= 6;
echo $i; // 输出30
$j=10;
$j /= 5;
echo $j; // 输出2
$k=15;
$k %= 4;
echo $k; // 输出3
?>
尝试一下 »
以下实例演示了使用不同字符串运算符得到的不同结果:
实例
<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // 输出Hello world!
$x="Hello";
$x .= " world!";
echo $x; // 输出Hello world!
?>
尝试一下 »
PHP 递增/递减运算符
运算符
名称
描述
++ x
预递增
x 加 1,然后返回 x
x ++
后递增
返回 x,然后 x 加 1
-- x
预递减
x 减 1,然后返回 x
x --
后递减
返回 x,然后 x 减 1
以下实例演示了使用递增/递减运算符得到的结果:
实例
<?php
$x=10;
echo ++$x; // 输出11
$y=10;
echo $y++; // 输出10
$z=5;
echo --$z; // 输出4
$i=5;
echo $i--; // 输出5
?>
尝试一下 »
PHP 比较运算符
比较操作符可以让您比较两个值:
运算符
名称
描述
实例
x == y
等于
如果 x 等于 y,则返回 true
5==8 返回 false
x === y
恒等于
如果 x 等于 y,且它们类型相同,则返回 true
5==="5" 返回 false
x != y
不等于
如果 x 不等于 y,则返回 true
5!=8 返回 true
x <> y
不等于
如果 x 不等于 y,则返回 true
5<>8 返回 true
x !== y
不恒等于
如果 x 不等于 y,或它们类型不相同,则返回 true
5!=="5" 返回 true
x > y
大于
如果 x 大于 y,则返回 true
5>8 返回 false
x < y
小于
如果 x 小于 y,则返回 true
5<8 返回 true
x >= y
大于等于
如果 x 大于或者等于 y,则返回 true
5>=8 返回 false
x <= y
小于等于
如果 x 小于或者等于 y,则返回 true
5<=8 返回 true
以下实例演示了使用一些比较运算符得到的不同结果:
实例
<?php
$x=100;
$y="100";
var_dump($x == $y);
echo "<br>";
var_dump($x === $y);
echo "<br>";
var_dump($x != $y);
echo "<br>";
var_dump($x !== $y);
echo "<br>";
$a=50;
$b=90;
var_dump($a > $b);
echo "<br>";
var_dump($a < $b);
?>
尝试一下 »
PHP 逻辑运算符
运算符
名称
描述
实例
x and y
与
如果 x 和 y 都为 true,则返回 true
x=6
y=3
(x < 10 and y > 1) 返回 true
x or y
或
如果 x 和 y 至少有一个为 true,则返回 true
x=6
y=3
(x==6 or y==5) 返回 true
x xor y
异或
如果 x 和 y 有且仅有一个为 true,则返回 true
x=6
y=3
(x==6 xor y==3) 返回 false
x && y
与
如果 x 和 y 都为 true,则返回 true
x=6
y=3
(x < 10 && y > 1) 返回 true
x || y
或
如果 x 和 y 至少有一个为 true,则返回 true
x=6
y=3
(x==5 || y==5) 返回 false
! x
非
如果 x 不为 true,则返回 true
x=6
y=3
!(x==y) 返回 true
PHP 数组运算符
运算符
名称
描述
x + y
集合
x 和 y 的集合
x == y
相等
如果 x 和 y 具有相同的键/值对,则返回 true
x === y
恒等
如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x != y
不相等
如果 x 不等于 y,则返回 true
x <> y
不相等
如果 x 不等于 y,则返回 true
x !== y
不恒等
如果 x 不等于 y,则返回 true
以下实例演示了使用一些数组运算符得到的不同结果:
实例
<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // $x 和 $y 数组合并
var_dump($z);
var_dump($x == $y);
var_dump($x === $y);
var_dump($x != $y);
var_dump($x <> $y);
var_dump($x !== $y);
?>
尝试一下 »
三元运算符
另一个条件运算符是"?:"(或三元)运算符 。
语法格式
(expr1) ? (expr2) : (expr3)
对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。
实例
以下实例中通过判断 $_GET 请求中含有 user 值,如果有返回 $_GET['user'],否则返回 nobody:
<?php
$test = '菜鸟教程';
// 普通写法
$username = isset($test) ? $test : 'nobody';
echo $username, PHP_EOL;
// PHP 5.3+ 版本写法
$username = $test ?: 'nobody';
echo $username, PHP_EOL;?>
菜鸟教程菜鸟教程
注意:PHP_EOL 是一个换行符,兼容更大平台。
在 PHP7+ 版本多了一个 NULL 合并运算符,实例如下:
<?php
// 如果 $_GET['user'] 不存在返回 'nobody',否则返回 $_GET['user'] 的值
$username = $_GET['user'] ?? 'nobody';
// 类似的三元运算符
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';?>
组合比较符(PHP7+)
PHP7+ 支持组合比较符,实例如下:
<?php// 整型
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
// 浮点型
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
// 字符串
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1?>
PHP If...Else 语句
条件语句用于根据不同条件执行不同动作。
PHP 条件语句
当您编写代码时,您常常需要为不同的判断执行不同的动作。您可以在代码中使用条件语句来完成此任务。
在 PHP 中,提供了下列条件语句:
· if 语句 - 在条件成立时执行代码
· if...else 语
展开阅读全文