1衙熔、強制類型轉(zhuǎn)化
1其兴、類型轉(zhuǎn)化函數(shù) intval floatval strval boolval
【注】轉(zhuǎn)化的是值,被轉(zhuǎn)變量的類型和值都不變
2、變量前面加上() 強制轉(zhuǎn)化
$f = '123.9abc123';
$s = (int)$f;
3程梦、settype(變量, 類型)
$f = '123.67abc';
settype($f, 'float');
var_dump($f);
【注】類型要用字符串
【注】編碼格式窃判,=兩邊要加空格斜姥,逗號后面要加空格
注意事項
空轉(zhuǎn)為整型會為整型的0
空轉(zhuǎn)為浮點會為浮點的0
空轉(zhuǎn)為字符串為空字符串‘’
浮點的123.0轉(zhuǎn)為字符串會為字符串123
浮點的123.2轉(zhuǎn)為字符串會為字符串的123.2
浮點即使小數(shù)點再大惑惶,轉(zhuǎn)為整數(shù)時都會被干掉,會舍掉小數(shù)點后面的值
字符串轉(zhuǎn)為整型的時候凄吏,如果數(shù)值在前面远舅,會將前面的數(shù)值拿出來做為整型的轉(zhuǎn)換值
2、自動類型轉(zhuǎn)化
字符串痕钢、布爾图柏、整型、浮點
.運算符:用來拼接字符串任连。
【注1】進行加減乘除運算蚤吹,字符串都會自動轉(zhuǎn)為整型或浮點。
【注2】bool類型參與運算随抠,true轉(zhuǎn)為1裁着,false轉(zhuǎn)為0
【注3】如果兩個變量執(zhí)行 . 運算符,那么都會先轉(zhuǎn)化為字符串暮刃,然后再拼接跨算,bool類型轉(zhuǎn)為字符串,true轉(zhuǎn)為1椭懊,false轉(zhuǎn)為0
【注4】如果字符串或者整型放到if括號里面或者執(zhí)行邏輯運算,那么他們都先轉(zhuǎn)為bool類型步势。
注意事項
1氧猬、整型的0為假,其他整型值全為真
2坏瘩、浮點數(shù)盅抚,全為0就是假,其它都為真倔矾。
3妄均、空字符串為假柱锹,只要里面有一個空格都算真。
4丰包、字符串里面只有一個0為假禁熏,其它都為真
5、空數(shù)組也將其視為假邑彪,只要里面有一個值瞧毙,就為真。
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有巧、常量
常量定義
在程序的運行過程中释漆,其值不能改變的量
定義形式: define('常量名', '常量值');
注意事項
1、常量名要用單引號括起來
2篮迎、常量名一般都使用大寫字母
3灵汪、常量值只能是標(biāo)量
4、常量的作用域是全局的
5柑潦、常量不能寫到字符串中
系統(tǒng)常量
LINE :當(dāng)前行號
FILE :當(dāng)前文件全路徑
DIR :當(dāng)前文件目錄路徑
PHP_OS :php運行操作系統(tǒng)
PHP_VERSION:php版本號
FUNCTION:當(dāng)前函數(shù)名
M_PI :圓周率
魔術(shù)常量
(了解)
__CLASS__ :當(dāng)前類名
__METHOD__:當(dāng)前成員方法名
__NAMESPACE__:當(dāng)前命名空間
常量判斷
判斷一個常量是否被定義過享言。
defined('常量名'); 如果定義過返回true,沒有定義過返回false
【注】括號里常量必須加單引號
5渗鬼、可變變量
$hello = 'world';
$world = 'baby';
$baby = 'xiaoming';
echo $$$hello;
打印結(jié)果為 'xiaoming'
6览露、變量引用
$a = 250;
$b = &$a;
$b = 300;
echo $a.'<br />';
echo $b.'<br />';
這種寫法,修改一個兩個都被修改了
$b = $a; 修改一個和另一個沒有任何關(guān)系
7譬胎、運算符和表達式
表達式定義:
表達式就是由變量差牛、常量、運算符組成的式子堰乔。
【注】所有表達式都是有值的偏化。
$a + $b $a > $b 3 + 5
算術(shù)運算符 + - * / % .
%:取余 5 % 2 = 1 2「浜睢%≌焯帧5 =」斗2
作用:
對2取余韵卤,可以判斷奇偶性
對某某取余,可以判斷是否可以被某某整除
對10取余崇猫,可以將個位數(shù)拿出來
.∩蛱酢:字符串拼接符號,用來拼接字符串
算術(shù)表達式的值就是你數(shù)學(xué)運算的結(jié)果
賦值運算符 = += *= /= %= .=
將等號右邊表達式的值賦給等號左邊的變量诅炉。
【注】等號左邊只能是變量蜡歹。
賦值表達式的值就是等號左邊變量的值
關(guān)系運算符 > < >= <=
100 <= $a <= 300 錯誤屋厘,沒有這種寫法
==:模糊等
【注】判斷的時候,一般將數(shù)字寫到前面
!=:模糊不等
===:全等
!==:不全等
表達式的值:只有兩個月而,true和false汗洒,關(guān)系成立就是true,不成立就是false
自增自減運算符 ++ --
$a++ ++$a $a-- --$a
無論是$a++還是++$a都是自增運算符景鼠,執(zhí)行完之后仲翎,變量$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個字節(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
短路概念
我們在邏輯運算符(與和或)中會出現(xiàn)短路現(xiàn)象勉痴。
表達式1 && 表達式2
當(dāng)程序發(fā)現(xiàn)表達式1是假的時候,那么表達式2就不會再計算了树肃。
表達式1 || 表達式2
當(dāng)程序發(fā)現(xiàn)表達式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;
其它運算符
`` @ => ->
優(yōu)先級問題
記得添加小括號即可