php數(shù)據(jù)類型轉(zhuǎn)換
例: $a=10;
$b="20px";
$c=$a+$b;// "+"要求左右兩個操作數(shù)必須是數(shù)值型健盒,如果有一個不是的話先口,要轉(zhuǎn)成數(shù)值型再運(yùn)行
echo $c;----------------->輸出結(jié)果為:30
變量之間的運(yùn)算,必須是同類型的森逮,如果類型不同艾岂,則必須轉(zhuǎn)成同類型合陵,然后再運(yùn)行沼填。
變量類型的轉(zhuǎn)換:系統(tǒng)自動轉(zhuǎn)換桅咆,強(qiáng)制轉(zhuǎn)換(手動轉(zhuǎn)換)
1.其它類型轉(zhuǎn)成布爾型
實例:
$a=100;-------------------->true
$a=0;-------------------->false
$a=0.98;-------------------->true
$a="";-------------------->false
$a="10px";-------------------->true
$a="120";-------------------->true
$a=null;-------------------->false
$result= (bool)$a;//使用運(yùn)算符(bool)強(qiáng)制轉(zhuǎn)換
var_dump($result);//打印變量的類型和值
總結(jié):這些數(shù)值將轉(zhuǎn)成false:0,0.0坞笙,""岩饼,''0'',array(),null;資源類型永遠(yuǎn)為true薛夜。
2.其它類型轉(zhuǎn)為整型
$a="";----------------------->0
$a="10px";----------------------->10
$a="120";----------------------->120
$a=null;----------------------->0
$a=true;----------------------->1
$a=false;----------------------->0
$a="abc";----------------------->0
$a=10.98;----------------------->10
$result= (int)$a;//使用運(yùn)算符(int)強(qiáng)制轉(zhuǎn)換
var_dump($result);//打印變量的類型和值
總結(jié):
(1)如果以數(shù)值開頭的字符串籍茧,可以轉(zhuǎn)成整型并去掉后面字符;
(2)開頭不含數(shù)值的字符串梯澜,將轉(zhuǎn)成0硕糊;
3.其它類型轉(zhuǎn)成字符串(了解)
$a=100;----------------------->"100"
$a=0;----------------------->"0"
$a=null;----------------------->""
$a=true;----------------------->"1"
$a=false;----------------------->""
$a=10.98;----------------------->"10.98"
$result= (string)$a;//使用運(yùn)算符(string)強(qiáng)制轉(zhuǎn)換
var_dump($result);//打印變量的類型和值
總結(jié):
(1)null和false轉(zhuǎn)成空字符串;
(2)整數(shù)0轉(zhuǎn)成 “0”腊徙;
php運(yùn)算符
1.算術(shù)運(yùn)算符:+,-檬某,*撬腾,/,%恢恼,++民傻,--
"%":取余,兩數(shù)相除取余數(shù)场斑,余數(shù)為0漓踢,說明能除盡。
如:輸出1-100之間所有偶數(shù)
for($i=0;$i<=100;$i++){
if($i%2==0){
echo $i."";
}
}
"++":自加1漏隐,有兩種用法:做前綴:++$i;做后綴:$i++
(1)如果單獨(dú)使用喧半,$i++和++$i結(jié)果一樣
如:$a=10;
$a++;//$a=$a+1
var_dump($a);------------------------>int(11)
++$a;//$a=$a+1
var_dump($a);------------------------>int(11)
(2)如果將$i++和++$i混在其他表達(dá)式當(dāng)中,則結(jié)果不一樣
如:$a=10;
$b=$a++;//先復(fù)制再加1青责,即先將變量$a的值賦值給$b,然后挺据,再將$a+1
var_dump($a,$b);------------------------>int(11) int(10)
$b=++$a;//先加1再賦值,即先將$a+1,再將結(jié)果賦給變量$b
var_dump($a,$b);------------------------>int(11) int(11)
//$c=$a+++10;
//var_dump($a,$c);------------------------>int(12) int(21)
$c=++$a+10;
var_dump($a,$c);------------------------>int(12) int(22)
2.字符串運(yùn)算符: ?.(字符串連接符)或.=
$a="abc";
$b=$a."100";
$a.=100;//$a=$a.100 ="abc"."100"="abc100"
echo $b;------------------------->"abc100"
3.賦值運(yùn)算符:=脖隶,+=扁耐,-=,*=产阱,/=婉称,%=
"=":將右邊運(yùn)算結(jié)果賦給左邊變量
“+=”:先加后等,如$a+=10;展開后,$a=$a+10;
如:將一個<img>的寬度(400px)王暗,變?yōu)樵瓉淼?倍
//(1)定義變量
$width="400px";
//(2)運(yùn)算過程
$width*=2;//$width=$width*2;$width="400px"*2=400*2=800;
$width.="px";//$width=$width."px"="800px"
//(3)輸出結(jié)果
echo "圖片寬度為:$width";----------------------->輸出結(jié)果為:圖片寬度為:800px
4.比較運(yùn)算符:>,<,>=,<=,==,!=,===,!==
注意:比較運(yùn)算符的運(yùn)算結(jié)果就是一個布爾值
“=”:賦值號悔据;
“==”:判斷值是否相等,不管類型瘫筐,如:10==“10”為真蜜暑,10==“10px”為真;
“===”:全等于策肝,判斷類型是否一致肛捍,還要判斷值是否相等铃肯,如:10==“10”為假耳高,10==“10px”為假;
5.邏輯運(yùn)算符:&&迟杂,||棺禾,缀蹄!
“&&”:邏輯與(并且關(guān)系),如果左右兩個操作數(shù)的結(jié)果都為true膘婶,則總結(jié)果為true缺前;
“||”:邏輯或(或者關(guān)系),如果左右兩個操作數(shù)有一個為true悬襟,則結(jié)果為true衅码;
“!”:邏輯非(取反)脊岳!true=false逝段;!100=false割捅,將奶躯!后面的表達(dá)式先轉(zhuǎn)成布爾值,再進(jìn)行取反操作亿驾。
如:判斷用戶輸入的年份是不是閏年
(1)能被4整除嘹黔,且不能被100整除
(2)能被400整除
(3)條件(1)和條件(2)是或的關(guān)系
$year=$_GET["year"];
if($year%4==0 && $year%100!=0 || $year%400==0){
echo "$year 是閏年";
}else{
echo “$year 是平年”;
}
6.三元運(yùn)算符(條件運(yùn)算符)
二元運(yùn)算符:左右有兩個操作數(shù)颊乘,如:+参淹,-,*乏悄,/
三元運(yùn)算符:是三個操作數(shù)或者表達(dá)式
條件判斷浙值?結(jié)果1:結(jié)果2 ?或 ?表達(dá)式1?表達(dá)式2:表達(dá)式3
如果條件為true檩小,則執(zhí)行結(jié)果1的代碼开呐;如果結(jié)果為false,則執(zhí)行結(jié)果2的代碼。
如:求兩個數(shù)的最大值
$a=10;
$b=20;
//使用if條件判斷
if($a>$b){
$max=$a;
}else{
$max=$b;
}
//使用三元運(yùn)算符判斷
$max=$a>$b?$a:$b;
運(yùn)算符優(yōu)先級:特殊運(yùn)算符》算數(shù)運(yùn)算符》比較運(yùn)算符》邏輯運(yùn)算符》賦值運(yùn)算符