首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 型別轉換與流程控制核心筆記:自動轉型、運算子、分支迴圈與日曆實作

     編輯:PHP 相關知識

PHP 型別轉換與流程控制核心筆記:自動轉型、運算子、分支迴圈與日曆實作

PHP 是弱型別語言,理解自動型別轉換規則與流程控制結構,是寫出無 Bug 代碼的前提。本文整理型別轉換陷阱、運算子優先級、分支/迴圈/中斷控制,並以「九九乘法表」與「HTML 日曆表」為實戰練習。

一、自動型別轉換規則

場景規則範例
整數 → 字串直接連接echo $num . "abc";
字串 → 整數參與數學運算$str + 3;(前導數字部分轉換,非數字開頭為 0)
轉布林以下為 false:0, "0", "", false, [], null, 未定義(bool)"0" === false

二、強制型別轉換

<?php
(int)$str; (float)$str; (string)$str; (bool)$str; (array)$str; (object)$str;
?>

三、常數定義

<?php
define("HOST", "localhost");      // 全域常數
const API_KEY = "secret";         // 類常數/命名空間常數 (PHP 5.3+)
?>

四、運算子分類

  • 一元:++ -- ~ !
  • 二元:算術 + - * / %、指派 = += -= *= /= %=、比較 > >= < <= == != === !==、邏輯 && || !、位元 & | ^ << >>、字串連接 .、陣列合併 +
  • 三元:$x = $cond ? 'yes' : 'no';(PHP 5.3+ 可省略中間:$x = $cond ?: 'no';)

五、流程控制結構

1. 分支:if/elseif/else、switch/case

switch 適合「固定值比對」,內部用鬆散比較 ==。

2. 迴圈:for、while、do-while、foreach

3. 迴圈中斷:break vs continue

<?php
// break:跳出整個迴圈
for ($i=1; $i<10; $i++) {
    if ($i===3) break;
    echo $i; // 1 2
}

// continue:跳過本次,進入下一次判斷
for ($i=1; $i<10; $i++) {
    if ($i===3) continue;
    echo $i; // 1 2 4 5 6 7 8 9
}
?>

4. exit / die():終止腳本執行

<?php
echo "11111<br>";
die("腳本到此結束");
echo "22222"; // 不會執行
?>

5. do-while 至少執行一次

<?php
$score = 31;
do {
    echo "<h1>{$score}</h1>";
} while ($score >= 60); // 仍會輸出一次 31
?>

六、實戰練習

1. 九九乘法表

<?php
for ($i=1; $i<=9; $i++) {
    for ($j=1; $j<=$i; $j++) {
        echo "{$i}*{$j}=" . ($i*$j) . " ";
    }
    echo "<br>";
}
?>

2. HTML 日曆表(31 天、隔行換色)

<?php
header("Content-Type: text/html; charset=utf-8");
$days = 31;
echo "<table border=1>";
for ($i=1, $week=0; $i<=$days; ) {
    $week++;
    $rowClass = ($week % 2) ? 'odd' : 'even';
    echo "<tr class='$rowClass'>";
    for ($j=0; $j<7; $j++, $i++) {
        if ($i > $days) {
            echo "<td>&nbsp;</td>";
        } else {
            echo "<td>{$i}</td>";
        }
    }
    echo "</tr>";
}
echo "</table>";
?>

搭配 CSS:

.odd { background:#f9f9f9; } .even { background:#eef; }

掌握型別轉換細節(特別是 == vs ===、字串參與運算、0/"0"/空字串的布林判斷)能避免 80% 的邏輯 Bug。流程控制方面,善用 foreach 替代計數迴圈,用 break/continue 控制迴圈流向,配合 exit/die 做防禦性程式設計,代碼將更健壯易維護。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved