• PHP学习记录之运算符


    <?php

    // 算术运算符
    // + - * / % 


    // 连接运算符 .
    // 将点号前后的字符串连接起来,如果不是字符串,会自动转换为字符串。
    // 。号两边有数字的话,要加空格将数字和.隔开;

    echo 'ab'.'cd'; //abcd
    echo 123 .'cd'; //123cd
    echo 123 . 456; ///123456
    echo 123 . true; // ‘1231’,true转为字符串,为‘1’
    echo '123'.false; // ‘123’,false转为字符串,为“”,空字符串

    //自赋值运算符
    //针对数字的:+= -= *= /= %=
    // 针对字符串的: 。=
    $a = 1;
    $a += 1;
    echo $a; //2

    $b = 'abc';
    $b .= 'hhh';
    echo $b; //abchhh

    // 自增或自减运算符
    echo '<br>';
    $a1 = 1;
    $a2 = 1;

    echo $a1++, $a1; // 12,先取值1,再将原来a1加1变为2;再输出
    echo ++$a2, $a2;// 22,先将原来a1加1变为2,再取值2;再输出


    //比较运算
    // 等于== :两个数据基本相等,类型可能发生转换,就算是相等,这是一种模糊相等
    // 如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。此规则也适用于 switch 语句。当用 === 或 !== 进行比较时则不进行类型转换,因为此时类型和数值都要比对。
    echo 1==true; //1
    echo 1=='1'; //1
    echo false==0; //1
    echo 1.0==1; //1
    //全等于=== :数据类型和值都一样,才是全等。
    echo 1===1; //1
    // 不全等与!==
    echo 1!=='1'; //1
    var_dump (''==0); //bool(true). ""==0==false==null
    var_dump ('abc'<'b'); //bool(true)
    var_dump (false<2); //bool(true) ,有bool值,则其他数据也会转为bool值后进行比较
    var_dump (null<'abc'); //bool(true),将null转为"",进行数字或者词汇比较
    var_dump ('1'<'a'); //bool(ture)
    var_dump ([]>1); //bool(ture)
    var_dump ([]>'1'); //bool(true)
    var_dump ([]<true); //bool(true)
    var_dump ([1]==true); //bool(true)
    var_dump ([]==false); //bool(true)
    var_dump ([]==null); //bool(true)

    // 三元运算符
    // 表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。

    // 简化形式表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。

    echo 1?2:3?4:5; // 4
    echo 1?:2; // 1 ,这是简化写法

    // 逻辑运算符
    // && || ! and or
    var_dump (false && func()); //bool(false)
    var_dump (true || func()); //bool(true)
    //上面的func()不会被调用,被短路了


    $a = 16;//判断给定的数是否能被3和5整除
    if ($a%3==0 && $a%5==0) {
    echo "yes";
    }else{
    echo "no";
    }

    //逻辑非
    if (!isset($a)) { //如果$a为真空null,就执行代码
    # code...
    }

    if (empty($a)) { //如果$a为空empty,如“”,0,0.0,‘0’,false,[]就执行代码,注意与上面的区别
    # code...
    }

    /


    // 位运算符
    // 位运算符允许对二进制数指定的位进行求值和操作,整数之间的按位与先要转换为二进制数。
    // $a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。
    // $a | $b Or(按位或) 将把 $a 和 $b 中任何一个为 1 的位设为 1。
    // $a ^ $b Xor(按位异或) 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。
    // ~ $a Not(按位取反) 将 $a 中为 0 的位设为 1,反之亦然。
    // 要用括号确保想要的优先级。例如 $a & $b == true 先进行比较再进行按位与;而 ($a & $b) == true 则先进行按位与再进行比较。

    //错误抑制符@
    // 在一个表达式出现错误的时候,可以将错误隐藏起来不输出,但错误依然存在。应用于某些不能控制的错误出现时。不让错误信息出现在用户使用的过程中。

    if (@mysqli_connect('localhost','root','123')) {
    echo "连接成功";
    }else{
    echo "连接失败";
    }

     //未加@前:

    //加了@之后:

    //运算符的优先级

    /*

    1、括号优先;
    2、先乘除取余后加减;
    3、赋值通常在最后;
    4、大致为:算术>比较>逻辑;

    */

    ?>

    练习:给定一个整数表示年份,判断该年份是否是闰年。

      
    经过多次修改,终于达到了我的预期结果。

     

    要求:

    第一次访问时显示:

    访问后直接点判断显示:

     

     

     

     

     

     

     

  • 相关阅读:
    LeetCode | Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode | Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode | Binary Tree Zigzag Level Order Traversal
    PLI与Pillow
    CentOS下安装setuptools、pip和virtualenv
    CentOS下更新python版本
    CentOS中输入yum报错:sudo: unable to execute /bin/yum: No such file or directory
    Python中pip版本升级error:You are using pip version 7.1.2, however version 8.1.1 is available.
    CentOS安装git
    CentOS中yum安装软件时报错:No package XXX available
  • 原文地址:https://www.cnblogs.com/wangyi0419/p/12350565.html
Copyright © 2020-2023  润新知