PHP三元运算符 / @抑制符 / 反引号

在这里插入图片描述

三元运算符 属于 条件运算符

语法:
表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。

//简单的判断 用三元运算符 比 if else 更好用
$a = true;
$a ? $b = 11 : $b = 22;

echo $b.'<br />';    //输出22

需要注意三元运算符是个语句,因此其求值不是变量,而是语句的结果。如果想通过引用返回一个变量这点就很重要。在一个通过引用返回的函数中语句 return $var == 42 ? $a : $b; 将不起作用,以后的 PHP 版本会为此发出一条警告。

在这里插入图片描述

反引号:     **``**

这个会比较特殊一点,可以用来显示IP地址等:
echo '<div>';

echo `ipconfig`;    //设置显示

echo '</div>';

还利用反引号可以执行 Unix 下的命令,并传回执行结果。例如:
echo ls -l *.txt;
表示将 ls -l *.txt 命令的执行结果输出,以反引号围住的字符串为要执行的 UNIX 指令。

在这里插入图片描述

@抑制符 (错误控制运算符)

PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

它可以屏蔽函数执行过程中遇到问题而产生的一些错误、警告信息,这样用户就看不到程序的出错信息。这样除了用户界面会友好一些外,更重要的是安全性,因为屏蔽了出错文件的路径等信息。


//设置打开一个不存在的文件, 不加@ 的情况下会报错,加了@ 以后空白一片…… 什么也没有 - 
$file = @fopen('111111adfasdfdsadf.txt','r');

需要注意的是:@ 运算符只对表达式有效。对新手来说一个简单的规则就是:如果能从某处得到值,就能在它前面加上 @ 运算符。例如,可以把它放在变量,函数和 include 调用,常量,等等之前。不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等。
不好的就是如果将错误抑制不让显示了,那脚本有可能会没有任何迹象显示原因而卡死在某处

猜你喜欢

转载自blog.csdn.net/freedomVenly/article/details/83143892
今日推荐