zoukankan      html  css  js  c++  java
  • php基础-3

    PHP 运算符

    本章节我们将讨论 PHP 中不同运算符的应用。
    在 PHP 中,赋值运算符 = 用于给变量赋值。
    在 PHP 中,算术运算符 + 用于把值加在一起。
    
    • 算术运算符表格

    <?php 
    $x=10; 
    $y=6;
    echo ($x + $y); // 输出16
    echo '<br>';  // 换行
    
    echo ($x - $y); // 输出4
    echo '<br>';  // 换行
     
    echo ($x * $y); // 输出60
    echo '<br>';  // 换行
     
    echo ($x / $y); // 输出1.6666666666667
    echo '<br>';  // 换行
     
    echo ($x % $y); // 输出4
    echo '<br>';  // 换行
    
    echo -$x;    // -10
    
    echo '10'+'20','<br>';		//30 int型
    echo '10ab'+'20cd','<br>';	//30
    ?>
    
    // PHP7+ 版本新增整除运算符 intdiv(),使用实例:
    <?php
    var_dump(intdiv(10, 3));
    ?>
    >>> int(3)
    

    PHP 赋值运算符

    在 PHP 中,基本的赋值运算符是 "="。它意味着左操作数被设置为右侧表达式的值。也就是说,"$x = 5" 的值是 5。

    看字符串拼接实例

    <?php
    $a = "Hello";
    $b = $a . " world!";
    echo $b; // 输出Hello world! 
     
    $x="Hello";
    $x .= " world!";
    echo $x; // 输出Hello world! 
    ?>
    

    PHP 递增/递减运算符

    <?php
    $num=5;//注意到+号是从左向右顺序计算
    echo (++$num)+(++$num)+(++$num);	// 6 + 7 + 8 = 21
    -------------------------
    <?php
    $num=5;
    echo ($num++)+($num++)+($num++);	//5 + 6 + 7 = =18
    

    PHP 比较运算符

    比较操作符可以让您比较两个值:

    类型的比较见菜鸟教程https://www.runoob.com/php/php-types-comparisons.html

    PHP 逻辑运算符

    <?php
    $a=5;
    $b=10;
    if($a>10 && ++$a>20)
    	echo '你好吗';
    echo $a;		//5
    //分析:$a>10为false, 与中只要有一个是false,另一个不用计算结果肯定是false,所以短路与++a就不计算了,结果是5
    ----------------------------
    <?php
    $a=5;
    $b=10;
    if(++$a<20 || ++$b>20)
    	echo '你好吗';
    echo $a, $b;		// 你好吗 6 10
    //分析:短路或只要有一个为true,结果肯定是true,$a<10结果是true,后面++$a就不用计算了。
    

    错误抑制符(@)

    错误抑制符只对表达式有效

    <?php
    echo @($aa+$bb);	//错误抑制
    

    PHP 数组运算符

    <?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);
    ?>
    >>>array(4) { ["a"]=> string(3) "red" ["b"]=> string(5) "green" ["c"]=> string(4) "blue" ["d"]=> string(6) "yellow" } 
    bool(false) 
    bool(false) 
    bool(true) 
    bool(true) 
    bool(true)
    

    三元运算符(条件运算符)

    形式1 (expr1) ? (expr2) : (expr3) 对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
    形式2 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3
    

    在 PHP7+ 版本多了一个 NULL 合并运算符,还多了一个组合比较符

    形式:??

    ?php
    // 如果 $_GET['user'] 不存在返回 'nobody',否则返回 $_GET['user'] 的值
    $username = $_GET['user'] ?? 'nobody';
    // 等价于类似的三元运算符
    $username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
    ?>
    

    PHP7+ 支持组合比较符(combined comparison operator)也称之为太空船操作符,符号为 <=>。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较。

    语法格式如下:

    $c = $a <=> $b;
    

    解析如下:

    • 如果 $a > $b, 则 $c 的值为 1。
    • 如果 $a == $b, 则 $c 的值为 0。
    • 如果 $a < $b, 则 $c 的值为 -1。
    <?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
    ?>
    
    // 多学一招:一个用来判断的函数
    isset():判断变量是否被设置,并且设置的不是null
    // isset():如果指定变量存在且不为 NULL,则返回 TRUE,否则返回 FALSE。
    /*
    如果已经使用 unset() 释放了一个变量之后,再通过 isset() 判断将返回 FALSE。
    若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是 null 字符("")并不等同于 PHP 的 NULL 常量。
    */
    echo isset($name)?$name:'姓名不详';		//姓名不详
    echo '<hr>';
    

    算符优先级:括号优先级最高

    <?php
    // 优先级: &&  >  =  >  and
    // 优先级: ||  >  =  >  or
     
    $a = 3;
    $b = false;
    $c = $a or $b;
    var_dump($c);          // 这里的 $c 为 int 值3,而不是 boolean 值 true
    $d = $a || $b;
    var_dump($d);          //这里的 $d 就是 boolean 值 true 
    ?>
    >>>
    int(3)
    bool(true)
    
  • 相关阅读:
    10 Programming Languages You Should Learn Right Now
    【Vegas原创】asp.net页面作为邮件正文发送
    【Vegas原创】产生文件编号(形如:SC000610001)
    ASP操作Excel技术总结
    【Vegas原创】asp/html页面作为邮件正文发送
    【Vegas原创】jmail 发邮件
    ADO.NET 如何读取 Excel (下)
    【Vegas原创】Ajax实现无刷新三联动
    【Vegas原创】Excel权限问题
    成为编程高手的八大奥秘
  • 原文地址:https://www.cnblogs.com/IronMind/p/13259805.html
Copyright © 2011-2022 走看看