---
# System prepended metadata

title: 基本教學
tags: [PHP基礎課程]

---

---
title: 基本教學
tags: PHP基礎課程
---

基本教學
===
變數
---

1. 以＄做開頭
2. 盡量用有意義的英文單字命名
3. 必須由英文字母+數字或底線組成
4. 名稱不可有空白
5. =後面可直接輸入數字或浮點小數
6. =後面要輸入字串或HTML語法的話要加""包起來
7. =後面可直接輸入算式
8. 結尾要加 ;
9. 雙引號可以含變數 單引號不可含變數
```php=
$name="中文";
$price=500;
$tatal=100*$price;
```
呈現方式
---

1. echo+需要呈現的內容
2. echo後面直接輸入變數不用+""
3. echo後面的內容是HTML跟字串時要用""或''
4. echo的內容是陣列的話用{}框起來
```php=
echo $name;
echo "<br>";
print ($price);
echo "<br>";
echo $tatal;
echo "{$i}"
```
echo的縮寫
---
```html=
    <?=    ;?> =><?php echo   ;?>
```
    
if...else
---
1. 如果(條件符合參數) {呈現"這句話";}否則{呈現"這一句話";}
2. 條件有參數即正確 非零即正確
```php=
$score=80;
echo"成績=".$score."<br>";

if($score>=60){$level='及格';}
else{$level='不及格';}
echo $level;
```
if...else if
---
1. 可加入多個條件
2. 缺點是太多條件時會耗費效能
```php
$score=50;
echo "成績=".$score."<br>";

if($score>=100){echo"恭喜滿分";}
else if($score>=80){echo"很棒唷";}
else if($score>=60){echo"及格了";}
else if($score>=40){echo"需要再加油";}
else if($score>=20){echo"缺少大量的努力";}
else if($score>=0){echo"沒有用心";}
```
三元運算式
---
變數A=(符合此條件)？’顯示此內容’：’否則顯示這個內容’；
```php=
$score=58;
echo"成績=".$score."<br>";

$level=($score>=60)?'及格':'不及格';
echo $level;
```
switch...case
---
1. switch須輸入一個值,不可以是單純的T或F
2. break只要條件達成就會結束不會繼續跑程式
3. 二選一時用if...else,多選用switch...

*下面這個範例用floor取最小值的用意是直接算出來判斷,速度會比較快
```php=
$score=57;
echo"成績=".$score."<br>";
$level=floor($score/25);
echo $level."<br>";

switch($level){
    case 4:
    case 3:
        echo"值得肯定";break;
    case 2:
        echo"需要練習";break;
    case 1:
        echo"缺乏基本功";break;
    case 0:
        echo"缺乏基本功";
    default:
        echo"沒有用心";}
```
極限值
---
1. 在條件裡面加入極限值
2. &&=>and , ||=>or
```php=
$score=1000;
echo "成績=".$score."<br>";

if($score>100 ||$score<0){$level=5;}
else{$level=floor($score/25);}
echo $level."<br>";

switch($level){
    case 4:
    case 3:
        echo"值得肯定";break;
    case 2:
        echo "需要練習";break;
    case 1:
        echo"缺乏基本功";break;
    case 0:
        echo"缺乏基本功";break;
    default:
    echo"成績不合理";}
```
＊綜合練習＊
---
用法:
```php=
$score=50;
echo "成績=".$score."<br>";
$level=($score>100 || $score<0)? 5 : floor($score/25) ; 
echo $level."<br>";

switch($level){
    case 4:
    case 3:
        echo"值得肯定";break;
     case 2:
        echo"需要練習";break;
    case 1:
        echo"缺乏基本功";break;
    case 0:
        echo"缺乏基本功";break;
    default:
    echo"成績不合理";}
```
迴圈
---
用法:
for(變數=從幾開始;變數小於或大於多少;變數一次增加多少)
```php=
for ($i = 0; $i < 10; $i++){
echo ($i * 10) . "<br>";}
```
while
---
1. 發現條件不符就會停止
2. windows最早也是用while
3. 寫遊戲大多也都是用while當起手式
4. 用法:while(迴圈到多少停止)
```php=
$i=1;
while($i<100)
    echo $i;
    $i=$i+1;
}

echo $i;
```
do...while
---
1. 用在登入系統的判斷以及資料庫的存取
2. 不論一開始設定的參數是多少都會先做一遍
3. 就算不符合參數規範也會繼續跑到完
```php=
$i=1;
do{    echo $i;
       $i=$i+1;
}
while($i<100);
```
陣列
---
1. 用$變數=[];來宣告一個空陣列
2. 用var_dump顯示內容以外還會顯示資料型態
3. 用print_r顯示(r是陣列的意思)則是單純將值顯示出來不會顯示其他資料
```php=
$a[1]="A";
$a[5]="B";

echo var_dump($a);
echo "<br>";
print_r($a);
```
var_dump顯示的結果呈現
這個陣列裡面有兩個東西
這東西的格式先用一個字串當作key值
他所對應到的字串[1]只有(1)個byte
這個字的內容叫做A[5]
這個字串也只有(1)個字叫做B

Array則是顯示這是一個陣列
然後[1]這個對應的內容叫做A
[5]

空陣列的宣告方式
---
空陣列會從0開始
```php=
$a[]='泰山';
$a[]='新北';
$a[]='台北';
$a[]='高雄';
$a[]='台中';
```
var_dump顯示的結果呈現
裡面總長度(5)個元素
第[0]個是元素字串 長度有(6)位元 內容是泰山
第[1]個元素是字串 長度有(6)位元 內容是新北
第[2]個元素是字串 長度有(6)位元 內容是台北
第[3]個元素是字串 長度有(6)位元 內容是高雄
第[4]個元素是字串 長度有(6)位元 內容是台中

Print_r則顯示簡單的內容
[0]是泰山 [1]是新北 [2]是台北 [3]是高雄 [4]是台中

轉成字串
---
要轉成字串的話要echo serialize

```php=
$a=[];
$a[]='泰山';
$a[]='新北';

echo serialize($a);
```
二維陣列
---
用法:
$陣列命名 [索引值（列）] [索引值（行）] ＝ 值 ;
```php=
＄classmate[0][0]="Alicia"; 
＄classmate[1][0]="Balo"; 
＄classmate[2][0]="Cindy"; 
```
array()函式
---
用法:
$陣列命名=array(索引=>array(索引=>值,索引=>值,索引=>值,....),
索引=>array(索引=>值,索引=>值,索引=>值,....),
索引=>array(索引=>值,索引=>值,索引=>值,....),....);
```php=
$grade = array("Student_Alicia"=>array("Math"=>40,"English"=>100),
                "Student_Balo"=>array("Math"=>100,"English"=>80),
                "Student_cindy"=>array("Math"=>80,"English"=>70));
```

概念等同:
$陣列命名=array(array列0(行0,行1,行2,...),
array列1(行0,行1,行2,...),
array列2(行0,行1,行2,...),...);

```php=
$Student_Alicia = array("Math"=>40,"English"=>100);
$Student_Balo = array("Math"=>100,"English"=>80);
$Student_cindy = array("Math"=>80,"English"=>70);
$grade = array($Student_Alicia,$Student_Balo,$Student_cindy);
```

