PHP 是一種直譯式語言,這表示它會直接執行你寫的程式碼。
PHP 程式碼檔案是文字檔,裡面包含 PHP 起始標籤<?php,用來標示 PHP 程式碼的開始。
如果檔案裡只有 PHP 程式碼,可以省略結尾標籤?>,這個標籤用來標示 PHP 程式碼的結束。
想進一步了解 PHP 標籤,請參閱 PHP 標籤文件。
<?php
// All PHP code goes here
// No closing tag required at the end
為了方便閱讀,所有程式碼範例都省略了 PHP 起始標籤<?php。
不過我們的 PHP 練習都已經幫你加好了,所以你不需要自己動手加。
所有敘述,例如賦值或函式呼叫,都必須以;結尾,以分隔指令。
省略;(就像 JavaScript 那樣)是不被允許的,會導致語法錯誤。
你可以從 PHP 文件進一步了解指令分隔。
$message = "Success!"; // Statement correctly ends with `;`
$message = "I know JavaScript." // PHP Parse error: syntax error, [...]
PHP 是一種動態型別的程式語言。
值的型別只有在程式執行時才會檢查。
使用賦值運算子=,可以把任何型別的值指定給任何變數名稱。
變數名稱必須以錢字號$開頭。
想更深入了解變數,請參閱 PHP 變數文件。
$count = 1; // Assign an integer value of 1
$count = 2; // Re-assign a new value to the variable
$count = false; // You may assign any value type
// Strings can be created by enclosing the characters
// within single `'` quotes or double `"` quotes.
$message = "Success!";
字面值和存在變數裡的值,都可以傳入函式。 定義函式參數時會建立新的變數,用來存放傳入的值。
// Declare the window_width function
function window_width($width)
{
echo $width; // Access the value passed into the function as $width
// ...
}
window_width(100); // Call the function with the literal value 100
$newWidth = 100;
window_width($newWidth); // Call the function with the value stored in $newWidth
函式可以使用關鍵字return回傳值。
要回傳的值可以是字面值、存在變數裡的值,或是某個指令的結果。
function window_height()
{
$heightOffset = 10;
return 100 + $heightOffset;
}
類別及其實例裡的函式稱為方法。
呼叫方法時,方法名稱前面要加上實例和->。
類別實例是透過new操作建立的。
方法可以存取特殊變數$this,它指向目前的實例。
<?php
// Calculator.php
class Calculator {
// ...
public function sub($x, $y)
{
return $this->add($x, -$y); // Calls the method add() of the current instance
}
public function add($x, $y)
{
return $x + $y;
}
}
$calculator = new Calculator(); // Creates a new instance of Calculator class
$calculator->sub(3, 1); // Calls the method sub() of the instance stored in $calculator
// => 2
我們會在之後的練習中更深入探討函式與類別。
除錯最基本的方式,就是把值和變數的內容印出來,這有助於理解程式實際發生了什麼事。 PHP 可以用下列方式印出值:
echo $variable;:輸出該值的字串表示print $variable;:和echo $variable;相同var_dump($variable);:可以更深入了解該值,例如 PHP 看到的型別使用echo或print時:空字串、false和null不會顯示出來。
而類別和實例則會讓它們發生錯誤。
用var_dump()就能看到這些內容。
在線上編輯器中,你產生的輸出會和測試結果一起顯示。 使用 CLI 時,輸出會和進度指示混在一起,出現在測試摘要之前。
在 PHP 和許多其他語言中,檔案是程式碼組織的基本單位。 為了在程式碼區塊中顯示應該查看的檔案名稱,我們會使用註解。 你永遠不需要在自己的檔案裡加上這類註解:
<?php
// NameOfPhpFile.php
[...]
程式碼、函式和類別都可以放在同一個檔案裡。 但通常這些程式碼單位會分別放在不同的檔案中。
常見的做法是一個檔案放一個類別,而且檔名要和類別名稱相符。
<?php
// Calculator.php
class Calculator {
// ...
function add($x, $y)
{
return $x + $y;
}
}
函式通常會依照共同的主題分組放在同一個檔案裡。
<?php
// window_handling.php
function window_paint()
{
// ...
}
function window_size($width, $height)
{
// ...
}
function window_move($x, $y)
{
// ...
}
另外也常有包含可直接執行敘述的檔案,例如index.php,它通常被當作網頁應用程式的進入點。
<?php
// index.php
$sum = add(1, 2);
// ...
類別名稱應該全部使用PascalCase。
視風格標準而定,變數、函式和方法的命名可以是camelCase或snake_case。
名稱可以包含字母a-zA-Z、數字0-9和底線_,但不能以數字開頭。
單行註解以//開頭,而一段文字可以用/*和*/包起來,變成多行註解。
// Single-line comment
/*
Multi-line comment
*/