跳轉到內容

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 "Hello, World!";


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

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

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


點符號連線兩個字串。在其他程式語言中,字串連線使用加號,點符號通常用於呼叫類中的函式。

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

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

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


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

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

[編輯 | 編輯原始碼]


華夏公益教科書