前言
PHP 开发基础开速入门系列目录:
- 《【web 开发基础】php 开发基础快速入门 (1)-PHP 介绍及开发环境快速安装和基本使用介绍》
- 《【web 开发基础】php 开发基础快速入门 (2)-PHP 的程序开发》
- 《【web 开发基础】php 开发基础快速入门 (3)-PHP 程序符号标记和程序注释的使用及空白符详解》
- 《【web 开发基础】php 开发基础快速入门 (4)-PHP 常量详解》
- 《【web 开发基础】PHP 快速入门(5)-PHP 运算符之算术运算符和字符串运算符详解》
- 《【web 开发基础】PHP 快速入门(6)-PHP 运算符之赋值运算符详解》
- 《【web 开发基础】PHP 快速入门(7)-PHP 运算符之比较运算符详解》
- 《【web 开发基础】PHP 快速入门(8)-PHP 运算符之逻辑运算符详解》
- 《【web 开发基础】PHP 快速入门(9)-PHP 运算符之位运算符详解》
文章目录这样放太长了,虽然这样更方便阅读。介绍完运算符,把这一系列所有文章目录单独整理到一篇文章,不然写到最后可能目录会占很大的篇幅~,这是题外话,言归正传,这一节我们继续了解关于PHP的运算符的使用。
在 PHP中除了我们前面介绍的运算符,还有一些其他的运算符用于某些特定功能的操作。PHP中特殊的运算符如下:
后面三个是我们在操作数组或者类的时候常用的运算符,后面介绍数组和类的文章我们着重介绍他们的用法,本文主要讲解前面三个运算符的使用和相关介绍。
三元运算符(? :)
“? :”可以提供简单的逻辑判断, 在PHP 中是唯的三元运算符。 类似于条件分支语句if...else....;但是三元运算符使用上更加简洁。 其语法格式如下所示:
(expr1) ? (expr2) : (expr3)
在expr1求值为TRUE时,执行“?"和“:”之间的expr2并获取其值;在expr1求值为FALSE时,执行“.”之后的expr3并获取其值。
<?php
//使用三元运算行判断表单传过来的action是否为空,如果为空则$action= "default",否则$action为传过来的值
$action = !empty($_GET['action'])?$_GET['action'] : "default";
echo "三元运算符得到的结果:".$action;
echo "<br>";
//和以上是相同的功能,只不过是对比使用if...else...条件语句
if(!empty($_GET['action'])){
$action = $_GET['action']; //$_GET['action']不为空,则$action = $_GET['action']
}else{
$action = "default"; //如果$_GET['action']为空则$action = 'default'
}
echo "分支语句处理后的结果:".$action;
执行结果:
执行运算符(``)
PHP支持一个执行运算符:反引号(``)。注意这不是单引号! PHP将尝试将反引号中的内容作为操作系统命令来执行,并将其输出信息返回(例如,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符"``" 的效果与函数shell_exe0相同。
<?php
//使用反引号(``)执行服务器操作系统的命令,并将结果赋给交量$output
$output = `ls -al`;
//输出操作系统的令返回的结果
echo "<pre> $output </pre>";
注:使用执行运算符(``)或是一些函数执行操作系统命令时, 所执行的命令是根据操作系统决定的,不同的操作系统命令有所不同。为了保证程序可以跨平台和系统安全,在开发时能使用PHP函数完成的功能就不要去调用操作系统命令来完成。
错误控制运算符
PHP支持一个错误控制运算符: @。当将其放置在一个PHP表达式之前时,该表达式可能产生的任何警告信息都将被忽略。使用错误控制运算符“@”时要注意,它只对表达式有效。对新手来说,一个简单的规则就是:如果能从某处得到值, 就能在它前面加上“@”运算符。 例如,可以把它放在变量、函数调用及常量等之前。不能把它放在函数或类的定义之前,也不能用于条件结构,如:if和foreach分支语句等。
<?php
//当打开一个不存在的文件时会,产生警告,使用@将其忽赔掉
$my_file = @file('non_existent_file');
//除数为0会产生警告,使用@将其忽略掉
@$num = 100/0;
//输出空使用头发送函数前面不能有任何输出, 空格、空行都不行,否则会产生警告,使用@将其忽略掉
@header("Location: http://www.baidu.com/");
提示:PHP程序在遇到一些错误情况时,都会产生一些信息报告, 这对于程序调试是非常有用的。尽量根据这些信息报告将遇到的错误解决掉,而不是直接使用“@”将其屏蔽。如果直接屏蔽掉这些警告信息,只是警告信息不会输出给浏览器,而存在的错误并没有解决。