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)即可