美文网首页
php第三天--运算符和表达式

php第三天--运算符和表达式

作者: 博行天下 | 来源:发表于2017-03-11 22:42 被阅读0次

    1、强制类型转化
    1、类型转化函数 intval floatval strval boolval
    【注】转化的是值,被转变量的类型和值都不变
    2、变量前面加上() 强制转化
    $f = '123.9abc123';
    $s = (int)$f;
    3、settype(变量, 类型)
    $f = '123.67abc';
    settype($f, 'float');
    var_dump($f);
    【注】类型要用字符串
    【注】编码格式,=两边要加空格,逗号后面要加空格
    注意事项
    空转为整型会为整型的0
    空转为浮点会为浮点的0
    空转为字符串为空字符串‘’
    浮点的123.0转为字符串会为字符串123
    浮点的123.2转为字符串会为字符串的123.2
    浮点即使小数点再大,转为整数时都会被干掉,会舍掉小数点后面的值
    字符串转为整型的时候,如果数值在前面,会将前面的数值拿出来做为整型的转换值
    2、自动类型转化
    字符串、布尔、整型、浮点
    .运算符:用来拼接字符串。
    【注1】进行加减乘除运算,字符串都会自动转为整型或浮点。
    【注2】bool类型参与运算,true转为1,false转为0
    【注3】如果两个变量执行 . 运算符,那么都会先转化为字符串,然后再拼接,bool类型转为字符串,true转为1,false转为0
    【注4】如果字符串或者整型放到if括号里面或者执行逻辑运算,那么他们都先转为bool类型。
    注意事项
    1、整型的0为假,其他整型值全为真
    2、浮点数,全为0就是假,其它都为真。
    3、空字符串为假,只要里面有一个空格都算真。
    4、字符串里面只有一个0为假,其它都为真
    5、空数组也将其视为假,只要里面有一个值,就为真。
    6、空也为假
    7、未声明成功的资源也为假

    3、isset empty is_null bool区别
    isset:判断变量是否有空间
    empty:只要其转化bool值是false的都是空的
    is_null:只有昨天产生的那三种情况是null

    empty和bool值正好相反
    isset和is_null正好相反
    

    4、常量
    常量定义
    在程序的运行过程中,其值不能改变的量
    定义形式: define('常量名', '常量值');
    注意事项
    1、常量名要用单引号括起来
    2、常量名一般都使用大写字母
    3、常量值只能是标量
    4、常量的作用域是全局的
    5、常量不能写到字符串中
    系统常量
    LINE :当前行号
    FILE :当前文件全路径
    DIR :当前文件目录路径
    PHP_OS :php运行操作系统
    PHP_VERSION:php版本号
    FUNCTION:当前函数名
    M_PI :圆周率
    魔术常量

        (了解)
        __CLASS__ :当前类名
        __METHOD__:当前成员方法名
        __NAMESPACE__:当前命名空间
    
    常量判断
        判断一个常量是否被定义过。
        defined('常量名');  如果定义过返回true,没有定义过返回false
        【注】括号里常量必须加单引号
    

    5、可变变量
    $hello = 'world';
    $world = 'baby';
    $baby = 'xiaoming';
    echo $$$hello;
    打印结果为 'xiaoming'
    6、变量引用
    $a = 250;
    $b = &$a;
    $b = 300;
    echo $a.'<br />';
    echo $b.'<br />';

    这种写法,修改一个两个都被修改了
    $b = $a;  修改一个和另一个没有任何关系
    

    7、运算符和表达式
    表达式定义:
    表达式就是由变量、常量、运算符组成的式子。
    【注】所有表达式都是有值的。
    $a + $b $a > $b 3 + 5
    算术运算符 + - * / % .
    %:取余 5 % 2 = 1  2 % 5 = 2
    作用:
    对2取余,可以判断奇偶性
    对某某取余,可以判断是否可以被某某整除
    对10取余,可以将个位数拿出来
    . :字符串拼接符号,用来拼接字符串
    算术表达式的值就是你数学运算的结果
    赋值运算符 = += *= /= %= .=
    将等号右边表达式的值赋给等号左边的变量。
    【注】等号左边只能是变量。
    赋值表达式的值就是等号左边变量的值

    关系运算符 > < >= <= 
    100 <= $a <= 300  错误,没有这种写法
    ==:模糊等
        【注】判断的时候,一般将数字写到前面
    !=:模糊不等
    ===:全等
    !==:不全等
    表达式的值:只有两个,true和false,关系成立就是true,不成立就是false
    
    
    自增自减运算符 ++ --
        $a++  ++$a  $a--  --$a
        无论是$a++还是++$a都是自增运算符,执行完之后,变量$a的值都要加1
        $b = ++$a;  先加再用  先将变量$a的值加1,然后再将$a赋给$b
        $b = $a++;  先用再加  先将变量$a的值赋给$b,然后再将$a加1
    
    逻辑运算符 &&  ||  !  and  or  xor
        逻辑与  &&   and
            表达式1        表达式2        表达式1 && 表达式2
              真       真             真
              真       假             假
              假       真             假
              假       假             假
             用一句来概括,只要有一个为假,那么整个表达式就是假
             $a >= 100 && $a <= 300
            
        逻辑或  ||   or
            表达式1        表达式2        表达式1 || 表达式2
              真       真             真
              真       假             真
              假       真             真
              假       假             假
             用一句来概括,只要有一个为真,那么整个表达式就是真
             ($a % 3 == 0) || ($a % 5 == 0)
        
        逻辑异或  xor
            表达式1        表达式2        表达式1 xor 表达式2
              真       真             假
              真       假             真
              假       真             真
              假       假             假
             用一句来概括,相异为真,相同为假
        
        逻辑非   !
            表达式     !表达式
              真           假
              假           真
    
    位运算符   &   |  ^   ~  <<  >>  (了解)
        1个0或者1个1叫做1位,8位叫做1个字节。
        下面都以8位举例:
            按位与    &
                $a & $b
                0&1 = 0  1&1 = 1  1&0 = 0  0&0 = 0
                0000 0010     2
                0000 1100  &  12
                0000 0000
                
            按位或   |
                $a | $b
                0|1 = 1  1|1 = 1  1|0 = 1  0|0 = 0
                0000 0010     2
                0000 1100  |  12
                0000 1110     
            
            按位异或  ^
                $a ^ $b
                0^1 = 1  1^1 = 0  1^0 = 1  0^0 = 0
                0000 0010     2
                0000 1100  ^  12
                0000 1110
            
            取反  ~
                ~$a;
                0  1   1  0
                1100 0010
                0011 1101
                
            左移
                $a<<2
                1010 1001
              1010 100100
                1010 0100
                
                0000 0001
                0000 0010
                0000 0100
                0000 1000
                
            右移
                $a>>2
                1010 1001
                0010 1010
            
    
    短路概念
        我们在逻辑运算符(与和或)中会出现短路现象。
        表达式1 && 表达式2
        当程序发现表达式1是假的时候,那么表达式2就不会再计算了。
        
        表达式1 || 表达式2
        当程序发现表达式1是真的时候,那么表达式2就不会再计算了。
        
        &&  &
        ||  |
        
    三元运算符 ?:
        这是唯一的一个三元运算符,什么叫三元?  
        双目运算符  单目运算符  三目运算符
        格式:
            表达式1?表达式2:表达式3
            整个表达式的值取决于表达式1,如果表达式1为真,那么整个表达式的值就是表达式2的值,如果表达式1为假,那么整个表达式的值就是表达式3的值。
            $a  $b 
            $max = $a > $b ? $a : $b;
            $a  $b  $c
            $max = ($a > $b ? $a : $b) > $c ? ($a > $b ? $a : $b) : $c;
        
    其它运算符
        ``  @  =>  ->
    优先级问题
        记得添加小括号即可
    

    相关文章

      网友评论

          本文标题:php第三天--运算符和表达式

          本文链接:https://www.haomeiwen.com/subject/fpgzgttx.html