php第三天--運(yùn)算符和表達(dá)式

1、強(qiáng)制類(lèi)型轉(zhuǎn)化
1、類(lèi)型轉(zhuǎn)化函數(shù) intval floatval strval boolval
【注】轉(zhuǎn)化的是值,被轉(zhuǎn)變量的類(lèi)型和值都不變
2、變量前面加上() 強(qiáng)制轉(zhuǎn)化
$f = '123.9abc123';
$s = (int)$f;
3、settype(變量, 類(lèi)型)
$f = '123.67abc';
settype($f, 'float');
var_dump($f);
【注】類(lèi)型要用字符串
【注】編碼格式,=兩邊要加空格,逗號(hào)后面要加空格
注意事項(xiàng)
空轉(zhuǎn)為整型會(huì)為整型的0
空轉(zhuǎn)為浮點(diǎn)會(huì)為浮點(diǎn)的0
空轉(zhuǎn)為字符串為空字符串‘’
浮點(diǎn)的123.0轉(zhuǎn)為字符串會(huì)為字符串123
浮點(diǎn)的123.2轉(zhuǎn)為字符串會(huì)為字符串的123.2
浮點(diǎn)即使小數(shù)點(diǎn)再大,轉(zhuǎn)為整數(shù)時(shí)都會(huì)被干掉,會(huì)舍掉小數(shù)點(diǎn)后面的值
字符串轉(zhuǎn)為整型的時(shí)候,如果數(shù)值在前面,會(huì)將前面的數(shù)值拿出來(lái)做為整型的轉(zhuǎn)換值
2、自動(dòng)類(lèi)型轉(zhuǎn)化
字符串、布爾、整型、浮點(diǎn)
.運(yùn)算符:用來(lái)拼接字符串。
【注1】進(jìn)行加減乘除運(yùn)算,字符串都會(huì)自動(dòng)轉(zhuǎn)為整型或浮點(diǎn)。
【注2】bool類(lèi)型參與運(yùn)算,true轉(zhuǎn)為1,false轉(zhuǎn)為0
【注3】如果兩個(gè)變量執(zhí)行 . 運(yùn)算符,那么都會(huì)先轉(zhuǎn)化為字符串,然后再拼接,bool類(lèi)型轉(zhuǎn)為字符串,true轉(zhuǎn)為1,false轉(zhuǎn)為0
【注4】如果字符串或者整型放到if括號(hào)里面或者執(zhí)行邏輯運(yùn)算,那么他們都先轉(zhuǎn)為bool類(lèi)型。
注意事項(xiàng)
1、整型的0為假,其他整型值全為真
2、浮點(diǎn)數(shù),全為0就是假,其它都為真。
3、空字符串為假,只要里面有一個(gè)空格都算真。
4、字符串里面只有一個(gè)0為假,其它都為真
5、空數(shù)組也將其視為假,只要里面有一個(gè)值,就為真。
6、空也為假
7、未聲明成功的資源也為假

3、isset empty is_null bool區(qū)別
isset:判斷變量是否有空間
empty:只要其轉(zhuǎn)化bool值是false的都是空的
is_null:只有昨天產(chǎn)生的那三種情況是null

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

4、常量
常量定義
在程序的運(yùn)行過(guò)程中,其值不能改變的量
定義形式: define('常量名', '常量值');
注意事項(xiàng)
1、常量名要用單引號(hào)括起來(lái)
2、常量名一般都使用大寫(xiě)字母
3、常量值只能是標(biāo)量
4、常量的作用域是全局的
5、常量不能寫(xiě)到字符串中
系統(tǒng)常量
LINE :當(dāng)前行號(hào)
FILE :當(dāng)前文件全路徑
DIR :當(dāng)前文件目錄路徑
PHP_OS :php運(yùn)行操作系統(tǒng)
PHP_VERSION:php版本號(hào)
FUNCTION:當(dāng)前函數(shù)名
M_PI :圓周率
魔術(shù)常量

    (了解)
    __CLASS__ :當(dāng)前類(lèi)名
    __METHOD__:當(dāng)前成員方法名
    __NAMESPACE__:當(dāng)前命名空間

常量判斷
    判斷一個(gè)常量是否被定義過(guò)。
    defined('常量名');  如果定義過(guò)返回true,沒(méi)有定義過(guò)返回false
    【注】括號(hào)里常量必須加單引號(hào)

5、可變變量
$hello = 'world';
$world = 'baby';
$baby = 'xiaoming';
echo $$$hello;
打印結(jié)果為 'xiaoming'
6、變量引用
$a = 250;
$b = &$a;
$b = 300;
echo $a.'<br />';
echo $b.'<br />';

這種寫(xiě)法,修改一個(gè)兩個(gè)都被修改了
$b = $a;  修改一個(gè)和另一個(gè)沒(méi)有任何關(guān)系

7、運(yùn)算符和表達(dá)式
表達(dá)式定義:
表達(dá)式就是由變量、常量、運(yùn)算符組成的式子。
【注】所有表達(dá)式都是有值的。
$a + $b $a > $b 3 + 5
算術(shù)運(yùn)算符 + - * / % .
%:取余 5 % 2 = 1  2 %?。怠。健。?br> 作用:
對(duì)2取余,可以判斷奇偶性
對(duì)某某取余,可以判斷是否可以被某某整除
對(duì)10取余,可以將個(gè)位數(shù)拿出來(lái)
. :字符串拼接符號(hào),用來(lái)拼接字符串
算術(shù)表達(dá)式的值就是你數(shù)學(xué)運(yùn)算的結(jié)果
賦值運(yùn)算符 = += *= /= %= .=
將等號(hào)右邊表達(dá)式的值賦給等號(hào)左邊的變量。
【注】等號(hào)左邊只能是變量。
賦值表達(dá)式的值就是等號(hào)左邊變量的值

關(guān)系運(yùn)算符 > < >= <= 
100 <= $a <= 300  錯(cuò)誤,沒(méi)有這種寫(xiě)法
==:模糊等
    【注】判斷的時(shí)候,一般將數(shù)字寫(xiě)到前面
!=:模糊不等
===:全等
!==:不全等
表達(dá)式的值:只有兩個(gè),true和false,關(guān)系成立就是true,不成立就是false


自增自減運(yùn)算符 ++ --
    $a++  ++$a  $a--  --$a
    無(wú)論是$a++還是++$a都是自增運(yùn)算符,執(zhí)行完之后,變量$a的值都要加1
    $b = ++$a;  先加再用  先將變量$a的值加1,然后再將$a賦給$b
    $b = $a++;  先用再加  先將變量$a的值賦給$b,然后再將$a加1

邏輯運(yùn)算符 &&  ||  !  and  or  xor
    邏輯與  &&   and
        表達(dá)式1        表達(dá)式2        表達(dá)式1 && 表達(dá)式2
          真       真             真
          真       假             假
          假       真             假
          假       假             假
         用一句來(lái)概括,只要有一個(gè)為假,那么整個(gè)表達(dá)式就是假
         $a >= 100 && $a <= 300
        
    邏輯或  ||   or
        表達(dá)式1        表達(dá)式2        表達(dá)式1 || 表達(dá)式2
          真       真             真
          真       假             真
          假       真             真
          假       假             假
         用一句來(lái)概括,只要有一個(gè)為真,那么整個(gè)表達(dá)式就是真
         ($a % 3 == 0) || ($a % 5 == 0)
    
    邏輯異或  xor
        表達(dá)式1        表達(dá)式2        表達(dá)式1 xor 表達(dá)式2
          真       真             假
          真       假             真
          假       真             真
          假       假             假
         用一句來(lái)概括,相異為真,相同為假
    
    邏輯非   !
        表達(dá)式     !表達(dá)式
          真           假
          假           真

位運(yùn)算符   &   |  ^   ~  <<  >>  (了解)
    1個(gè)0或者1個(gè)1叫做1位,8位叫做1個(gè)字節(jié)。
    下面都以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
        

短路概念
    我們?cè)谶壿嬤\(yùn)算符(與和或)中會(huì)出現(xiàn)短路現(xiàn)象。
    表達(dá)式1 && 表達(dá)式2
    當(dāng)程序發(fā)現(xiàn)表達(dá)式1是假的時(shí)候,那么表達(dá)式2就不會(huì)再計(jì)算了。
    
    表達(dá)式1 || 表達(dá)式2
    當(dāng)程序發(fā)現(xiàn)表達(dá)式1是真的時(shí)候,那么表達(dá)式2就不會(huì)再計(jì)算了。
    
    &&  &
    ||  |
    
三元運(yùn)算符 ?:
    這是唯一的一個(gè)三元運(yùn)算符,什么叫三元?  
    雙目運(yùn)算符  單目運(yùn)算符  三目運(yùn)算符
    格式:
        表達(dá)式1?表達(dá)式2:表達(dá)式3
        整個(gè)表達(dá)式的值取決于表達(dá)式1,如果表達(dá)式1為真,那么整個(gè)表達(dá)式的值就是表達(dá)式2的值,如果表達(dá)式1為假,那么整個(gè)表達(dá)式的值就是表達(dá)式3的值。
        $a  $b 
        $max = $a > $b ? $a : $b;
        $a  $b  $c
        $max = ($a > $b ? $a : $b) > $c ? ($a > $b ? $a : $b) : $c;
    
其它運(yùn)算符
    ``  @  =>  ->
優(yōu)先級(jí)問(wèn)題
    記得添加小括號(hào)即可
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容