牛骨文教育服务平台(让学习变的简单)

3.4.8 三元运算符和其它运算符

此外还有一些特殊的运算符和符号,我们先来进行讲解。可能以后我们需要用到。

符号 说明
$x? 真代码段:假代码段 判断是否为真假 ? 真情况 : 假情况;
``(反引号) 反引号中间插代命令,执行系统命令,等价于shell_exec函数
@ 单行抑制错误,把这一行的错误不让它显示出来了,效率低不建议使用
=> 数组下标访问符
-> 对象访问符
instanceof 判断某个对象是否来自某个类,如果是的返回true,如果不是返回false

三元运算符,相当于是if...else结构。不过三元运算符的写法更加简洁,语法格式如下:

$x? 真代码段(只能写一句代码):假代码段(只能写一句代码);

代码如下:

<?php
$x = true;

$x ? $y = 5 : $y = 6;
//输出5
echo  $y;

?>

反引号就更加特殊了,我们经常需要显示IP地址,在PHP里面可不可能显示我们windows的IP地址呢?用反引号,就可以执行我们的命令(不过有些虚拟服务器是禁止执行这些的命令脚本的):

<?php
echo "<pre>";

echo `ipconfig`;
echo "</pre>";
?>

上面的代码你执行看看效果,是不是显示出来了你机器的IP地址和一堆和IP相关的参数?

@符是指单行抑制错误,以后的章节我们还会讲解到。此处为了解级别。

<?php
//打开一个不存在的文件adfsafasdfasfasdfdsadf.txt,你运行一下会发现报错了。
//再前面再加上一个@符看看效果
$fp = fopen("adfsafasdfasfasdfdsadf.txt","r");

//@$fp = fopen("adfsafasdfasfasdfdsadf.txt","r");

?>

数组下标访问符,以后也会有一章讲解,此处了解一下就可以了:


<?php

$data = array("sina" =>"新浪" ,"sohu" => "搜狐");

?>

对象访问符->和instanceof 都是了解级别,以后也有专门的章节进行讲解:

<?php
//实例化一个对象
$obj = new StdClass();

//判断某对象是某由某个类实例化,如果是的则执行真
if($obj instanceof stdClass){
    echo "真";
}else{
    echo "假";
}
//向obj对象中追加一个成员属性为username
$obj -> username  = "PHP学院";

echo $obj -> username;

?>

上面的所有例子中,除了三元运算符、@符、反引号外。其他的学习级别均为了解,在以后讲解的时候。知道有这个符号即可。