標籤:比較子 result 對象 als 賦值 ... 運算 world 括弧
-------
補充
--------
建議定義常量時,判斷常量名是否被定義,用defined()判斷,返回布爾型
if(!defined("POEM")){//沒定義過
define("POEM","杜甫");
}
---------------------------------
1,運算子
2.選擇結構
3.迴圈結構
-----------------------------------
***1,運算子
算數運算 (+ - * /非整除 %求餘 ++ -- )
$x=10;
$y=$x++; // 先賦值後自增
$z=++$x; //先自增後賦值
echo $y,$x,$z;
邏輯運算
與&& and 或|| or 非!not xor異或
注意:(1) 優先順序:and小於&&,or小於||
$e=false||true;
$f=false or true;//先賦值,後判斷
echo $e,"----",$f; // 1---
建議使用&&或||,使用or或者and的時根據需要添加括弧
(2)
運算式1&&運算式2 若1為假,不再判斷2
運算式1||運算式2 若1為真,不再判斷2
$x=10;
$y=9;
$z=$x||++$y;//左側為1,右側++$y沒有執行
echo $z,$y;
比較子
> < >= <=
==(值相等) ===全等(值和類型都相等)
!=(值不等) !==不全等(值或類型不相等)
$x=10;
$y=10.0;
$z=9;
if($x==$y){//值等
echo "相等1";
}
if($x===$y){//值和類型完全相等 且
echo "等價2";
}
if($x!=$z){
echo "不相等3";
}
//!(a且b) = !a || !b
if($x!==$z){//值或類型不等
echo "不相等4";
}
【注意】字串比較:從左至右依次比較每個字元
賦值運算子
= += -= *= /= %= .=
$a=10;
$a+=12;
echo $a;
$y="hello";
$y.="world";
echo $y;
三目運算(三元運算式)
條件 ?運算式1 :運算式2
如果條件為真,結果為運算式1,否則結果為運算式2
//需求:如果輸入tom 123表示登陸成功,否則登入失敗
$name=$_GET["username"];
$psw=$_GET["psw"];
$result= $name=="tom"&&$psw=="123" ?"登入成功,$name ,$psw": "登入失敗";
$result2= $name=="tom"&&$psw!="123" ?"密碼不正確": "";
$result3= $name!="tom" ?"使用者不存在": "";
echo $result,$result2,$result3;
// 第二種
$result=$_GET["user"]=="tom" ? ($_GET["pass"]=="123"? "登陸成功":"密碼不正確"):"使用者名稱不存在";
echo $result;
****選擇結構
單分支if
雙 if else
多分支 if else if ... else
echo date("Y年m月d日D星期");
$time=date("H");
if($time<12){
echo "上午好";
}else if($time>=12&&$time<18){
echo "下午好";
}else{
echo "晚上好";
}
**switch選擇結構
多路選擇:值等或不等的情況,不能處理範圍或區間的選擇
$time=$_GET["time"];
switch($time){
case "1" :echo "星期一"; break;
case "2" :echo "星期二"; break;
case "3" :echo "星期三"; break;
case "4" :echo "星期4"; break;
case "5" :echo "星期5"; break;
case "6" :echo "星期6"; break;
case "7" :echo "星期日"; break;
default : echo "星期錯誤";break;
}
$time=4;
switch($time){
case "1" :echo "星期一";
case "2" :echo "星期二";
case "3" :echo "星期三"; break;
case "4" :echo "星期4";
case "5" :echo "星期5"; break;
case "6" :echo "星期6";
case "7" :echo "星期日";
default : echo "星期錯誤";break;
}
//星期4 星期5
【注】switch匹配case成功後,直到遇到break才退出選擇結構,所以推薦每個case後都要加break;
default位置任意,執行也是遇到break退出選擇結構
switch執行順序:先匹配case,如果case匹配不成功,匹配default
例1:
$b=true;
switch($b){
case false:echo ‘假‘ ;break;
case 0:echo ‘*******‘ ;break;
case null:echo ‘空‘;break;
case -1:echo ‘負數‘ ;break;
case 2:echo ‘星期二‘ ;break;
default:echo "no this day";
}
// switch中運算式為true時,匹配非false的case入口
// 非0即為true, false和0以及null都為false
例二:
$b=2;
switch($b){
case true:echo ‘happy‘ ;break;
case 2:echo ‘星期二‘ ;break;
default:echo "no this day";
}
//說明:如果case為true的入口在匹配成功之前,該case一定會匹配到
例三:
$b="2";
switch($b){
case 2:echo ‘星期二‘ ;break;
case true:echo ‘happy‘ ;break;
default:echo "no this day";
}
//case匹配的是數值,switch結構能夠自動轉換類型
例四:
$b=null;
switch($b){
case false:echo ‘假‘;break;
case null:echo ‘null對象‘ ;break;
default:echo "no this day";
}
// 說明:switch中運算式值為null,作為false匹配
//此處null和false都是匹配入口,結果與這兩個case入口的順序有關
***迴圈結構
while(條件){
// 迴圈體
//注意:控制變數
}
//需求:求1-100的和
$i=1;//控制變數
$sum=0;//儲存結果
while($i<=100){
$sum+=$i;
$i++;//別忘了
}
echo $sum;
do-while:先斬後奏
do{
//迴圈體
// 修改控制變數
}while(條件);
//需求:求1-100的和
$i=1;//控制變數
$sum=0;//儲存結果
do{
$sum+=$i;
$i++;
}while($i<=100);
echo $sum;
for迴圈
for(語句1;條件;語句){
//迴圈體
}
//需求:求1-100的和
$sum=0;//儲存結果
for($i=1;$i<=100;$i++){
$sum+=$i;
}
echo $sum;
//說明:已知迴圈次數時,通常採用for迴圈,若不知道迴圈次數一般用while或者do-while
****迴圈結構複合體
//外層控制行號
for($i=1;$i<=9;$i++){
//內層控制每行輸幾個#
for($j=1;$j<=$i;$j++){
echo "#";
}
echo "<br>";
}
//外層控制行號
for($i=1;$i<=9;$i++){
//內層控制每行輸入的內容
//輸空格
for($j=1;$j<=10-$i;$j++){
echo " ";
}
// 輸出#
for($j=1;$j<=$i;$j++){
echo "#";
}
echo "<br>";
}
//輸出金字塔
for($i=1;$i<=9;$i++){
//內層控制每行輸入的內容
//輸空格
for($j=1;$j<=10-$i;$j++){
echo "$";
}
// 輸出#
for($j=1;$j<=2*$i-1;$j++){
echo "#";
}
echo "<br>";
}
//輸出空心金字塔
for($i=1;$i<=9;$i++){
//內層控制每行輸入的內容
//輸空格
for($j=1;$j<=9-$i;$j++){
echo " ";
}
// 輸出#
for($j=1;$j<=2*$i-1;$j++){
//除最後一行之外,// 首末輸出#,否則輸出空格
if($i!=9){
if($j==1||$j==2*$i-1){
echo "#";
}else{
echo " ";
}
}else{
echo "#";
}
}
echo "<br>";
}
php自學筆記3