zoukankan      html  css  js  c++  java
  • php中三元运算符用法


    代码如下:

    <?php
    $handle=fopen("../good/html/1.txt", "r");
    while(!feof($handle)) //判断是否到文件尾
    {
    $char=fgetc($handle); //获取当前一个字符
    echo($char==" "? '<br/>':$char);
    }
    ?>

    请教 echo($char==" "? '<br/>':$char); 这段话应该如何解读?


    文本中的换行是用 ,而在页面上显示html用的是<br/>,所以读取文本展示内容遇到换行符要转换一下。


    :条件 ? 结果1 : 结果2
    说明:问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2。

    代码如下
    <?PHP
    $id = isset($_GET['id']) ? $_GET['id'] : false;
    ?>
    一条代码替代了很多的代码。首先,它使用isset ()函数,检查$_GET['id']是否存在。如果$_GET['id']确实存在,它将返回它的价值。但是,如果它不存在,条件即为假,这时返回的是false。$id的值取决于$_GET['id']是否存在。所以,基本上,如果$_GET['id']存在,$id=$_GET['id'],反之$id=false。


    用“?:”条件语句检验用户输入值:
    代码如下
    <?php
    $filename = isset($argv[1]) ? $argv[1] : "php://stdin";
    $fp = @fopen($filename, ‘r’) or die("Can’t Open $filename for reading");
    while (!@feof($fp)) {
    $line = @fgets($fp, 1024);
    print $line;
    }
    @fclose($fp);
    ?>
    前面使用三元运算符的代码和下面的代码等同:
    代码如下
    <?php
    if (isset($argv[1])) {
    $filename = $argv[1];
    } else {
    $filename = "php://stdin";
    }
    ?>
    可以看出,假设用普通的if-else结构写上述代码,代码量会比上面多出许多,但第二种形式更易理解,而且不要求更多的录入。所以在挑选三元运算符时,请务必权衡一下利弊。
    三元运算符优点
    PHP中的三元运算符(?:)大大减少了程序员写这些语句的时间。它的语法如下:
    condition ? do_if_true : do_if_false;
    三元运算符不是一种必不可少的结构,但却是一种美化代码的途径。同样,它可以取代不好的if…else代码块,并且可以提高代码的可读性。
    同样,用户可以使用PHP的or运算服赋予变量默认值:
    代码如下
    <?php
    $filename = $argv[1] or $filename = "php://stdin";
    ?>

  • 相关阅读:
    三:redis的数据类型
    二:redis配置
    一:redis安装(Windows)
    Mysql数据库的调优
    JAVA中的设计模式四(装饰模式)
    tomcat启动正常,但是访问项目时,404. Eclipse没有正确部署工程项目
    在eclipse中安装jadclipse的反编译插件
    部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener【转】
    自动生成编号,id,序号,采用不同策略生成
    POI实现Excel导入导出
  • 原文地址:https://www.cnblogs.com/feiyun8616/p/6425159.html
Copyright © 2011-2022 走看看