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

2017-03-11  本文已影响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;
    
其它运算符
    ``  @  =>  ->
优先级问题
    记得添加小括号即可
上一篇下一篇

猜你喜欢

热点阅读