跳轉到內容

PHP 程式設計/從“Hello World!”開始

來自華夏公益教科書
此頁面使用 顏色程式碼框。使用 討論頁面 來留下關於此新功能的任何反饋。

返回 基本知識

程式碼

[編輯 | 編輯原始碼]

簡單的 Hello World

[編輯 | 編輯原始碼]
"Hello World." 是大多數初學者程式設計師在任何給定語言中學習編寫的第一個程式。以下是如何在 PHP 中列印“Hello World!”的示例。

程式碼:

<?php
  echo "Hello World!";
  echo "We are learning PHP!";

輸出:

Hello World!
We are learning PHP!

這就是 PHP 最基本的用法。三行簡單的程式碼,第一行標識 <?php 標籤之後的所有內容都是 PHP 程式碼(直到檔案末尾,或者直到出現 ?> 標籤)。第二行和第三行在網頁上寫一個文字問候語。下一個示例稍微複雜一些,並使用變數。

帶有變數的 Hello World

[編輯 | 編輯原始碼]
此示例將字串“Hello World!”儲存在一個名為 $string 的變數中。以下幾行展示了將變數 $string 顯示到螢幕上的各種方法。

PHP 程式碼:

<?php
  // Declare the variable 'string' and assign it a value.
  // The <br> is the HTML equivalent to a new line.
  $string = 'Hello World!<br>';

  // You can echo the variable, similar to the way you would echo a string.
  echo $string;

  // You could also use print.
  print $string;

  // Or, if you are familiar with C, printf can be used too.
  printf('%s', $string);

PHP 輸出:

Hello World!<br>Hello World!<br>Hello World!<br>

HTML 渲染:

Hello World!
Hello World!
Hello World!


前面的示例包含兩個輸出。PHP 可以輸出瀏覽器將格式化和顯示的 HTML。PHP 輸出框是精確的 PHP 輸出。HTML 渲染框是您的瀏覽器如何顯示該輸出的近似值。不要被這弄糊塗,這只是為了讓您知道 PHP 可以輸出 HTML。我們將在以後更深入地討論它。

新概念

[編輯 | 編輯原始碼]

變數是任何程式語言的基礎:它們是“容器”(記憶體中的空間),用來儲存資料。資料可以更改,因此它是“變數”。

如果您有過使用其他程式語言的經驗,您知道在某些語言中,您必須定義變數將儲存的資料型別。這些語言被稱為靜態型別,因為變數的型別必須在您將資料儲存到變數之前就已知。例如,C++Java 等程式語言就是靜態型別。另一方面,PHP 是動態型別,因為變數的型別與變數的值相關聯。您可以定義一個用於字串的變數,儲存一個字串,然後用一個數字替換字串。要在 C++ 中執行相同的操作,您必須轉換,或更改變數的型別,並將它儲存在不同的“容器”中。

PHP 中的所有變數都遵循美元符號 ($) 後跟識別符號的格式,例如 $variable_name。這些識別符號區分大小寫,這意味著大小寫很重要,因此 $wiki 與 $Wiki 不同。

現實世界類比

[編輯 | 編輯原始碼]

將變數與現實世界中的物體進行比較,想象一下您計算機的記憶體就像一個儲藏室。變數就是儲藏室中的一個箱子,箱子的內容(比如一個杯子)就是該變數中的資料。

如果箱子被標記為 廚房用品,箱子的內容是一個杯子,PHP 程式碼將是

$kitchen_stuff = 'cup';

如果我接著進入儲藏室,開啟標記為 廚房用品 的箱子,然後用一個叉子替換杯子,新的程式碼將是

$kitchen_stuff = 'fork';

注意程式碼塊中間新增的 = 和結尾的 ;= 是賦值運算子,或者用我們的類比來說,是附帶在箱子上的說明,上面寫著“將杯子放到箱子裡”。; 表示停止評估程式碼塊,或者用我們的類比來說,完成正在做的事情並繼續做其他事情。

還要注意杯子是用單引號而不是雙引號包裹的。使用雙引號會告訴 PHP 解析器箱子裡可能不僅僅是一個杯子,還需要查詢其他說明。

$bathroom_stuff = 'toothbrush'; 
$kitchen_stuff = "cup $bathroom_stuff";
 
//$kitchen_stuff contents is now '''cup toothbrush'''

單引號告訴 PHP 解析器它只是一個杯子,不用查詢其他東西。在這個例子中,本來應該將它的內容新增到廚房箱子的浴室箱子,反而添加了它的名字。

$bathroom_stuff = 'toothbrush';
$kitchen_stuff = 'cup $bathroom_stuff';
 
//$kitchen_stuff contents is now '''cup $bathroom_stuff'''

所以,再次嘗試將類比進行視覺化和關聯,以透過下面的比較來理解變數的概念。請注意,這是一個現實世界中物體的比較,而不是 PHP 程式碼。

Computer memory (RAM) = storage shed
Variable = a box to hold stuff
Variable name = a label on the box such as kitchen stuff
Variable data = the contents of the box such as a cup

請注意,您不會將變數命名為 box,因為變數和箱子之間的關係用 $ 表示,以及資料如何儲存在記憶體中。例如,常量和陣列在使用箱子類比時可以被認為是一種變數,因為它們都是用來儲存某種內容的容器,但是,它們之間的區別在於它們是如何定義來處理箱子中的內容的。

變數:一個可以開啟的箱子,可以交換箱子裡的內容。

常量:一個無法開啟交換其內容的箱子。在儲藏室裡只能檢視其內容,而不能交換。

陣列:一個箱子,裡面包含一個或多個額外的箱子。為了使初學者更難理解,每個額外的箱子可能還包含一個箱子。在廚房用品箱子裡,我們有兩個箱子,一個乾淨的杯子箱

$kitchen_stuff["clean_cup"] = 'the clean cup';

和一個髒的杯子箱

$kitchen_stuff["dirty_cup"] = 'the dirty cup';

關於變數的更多資訊,來自 PHP 手冊

print 和 echo 語句

[編輯 | 編輯原始碼]

Print 是輸出的關鍵。它將引號(或括號)中緊隨其後的內容傳送到輸出裝置(瀏覽器視窗)。類似的功能是 echo,但是 print 允許使用者檢查 print 是否成功。

當與引號一起使用時,如
print "Hello, World!";


引號內的文字被視為字串,因此可以與連線(將兩個字串連線在一起)運算子以及任何返回字串值的函式結合使用。

以下兩個示例具有相同的輸出。
print "Hello, World!";

print "Hello" . ", " . "World!";


點符號連線兩個字串。在其他程式語言中,連線字串是透過加號完成的,而點符號通常用於從類中呼叫函式。

另外,需要注意的是,在大多數情況下,echo可以與print互換使用。print返回一個值,因此可以用來測試列印是否成功,而echo假設一切正常。在大多數情況下,如果echo失敗,我們無能為力。

以下示例再次具有相同的輸出。
echo "Hello, World!";

echo "Hello" . ", " . "World!";


我們將在本書的大多數部分使用echo,因為它是最常用的語句。

需要注意的是,雖然echoprint可以像函式一樣呼叫,但它們實際上是語言結構,可以不帶括號呼叫。正常的函式(幾乎所有其他函式)必須在函式識別符號後帶括號呼叫。

[編輯 | 編輯原始碼]


華夏公益教科書