标签
PHP語法基礎:從標籤、語句、變數到數據類型的詳細解讀
PHP語法基礎 PHP(Hypertext Preprocessor)是一種開放源碼的通用電腦程式設計語言,特別適合於網路開發並可嵌入HTML中使用。以下將介紹PHP的基本語法。 PHP標籤 PHP的腳本可以放在文檔中的任何位置。PHP腳本以<?php開始,以?>結束: <?php // PHP code goes here ?> PHP語句 在PHP中,每個語句都必須以分號結束。分號是一種分隔符,用於區分PHP的多個語句。 PHP變數 在PHP中,變數以$符號開始,其後是變數的名稱。變數名稱必須以字母或下劃線開始。例如: <?php $txt = "Hello world!"; $x = 5; $y = 10.5; ?> PHP常量 在PHP中,常量是一種在腳本運行期間無法改變的名稱或標識符。常量的名稱以字母或下劃線開始,後面可以跟任何字母、數字或下劃線。例如: <?php define("GREETING", "Welcome to W3School.com.cn!"); echo GREETING; ?> PHP數據類型 PHP支持以下數據類型: String(字符串) Integer(整型) Float(浮點型) Boolean(布爾型) Array(數組) Object(對象) NULL(空值) PHP字符串 字符串是字符的序列,比如"Hello world!"。在PHP中,字符串可以用兩種方式定義:單引號和雙引號。 PHP整型 整型是沒有小數的數字。整型規則: 整數必須有至少一個數字(0-9) 整數不能包含逗號或空格 整數是沒有小數點的 整數可以是正數或負數 整數可以是十進制、十六進制或八進制 PHP浮點型 浮點數是有小數點或以科學記數法(e)表示的數字。 PHP布爾型 布爾型可以是TRUE或FALSE。 PHP數組 數組在一個變量中存儲多個值。 PHP對象 對象是存儲數據和有關如何處理數據的信息的數據類型。在PHP中,必須明確地聲明對象。 PHP NULL值 NULL是一種特殊的數據類型,可以只有一個值:NULL。一個NULL值表示變量沒有值。NULL值是區分大小寫的。 結論 以上就是PHP語法的基礎知識,包括PHP標籤、語句、變數、常量、數據類型等等。希望這篇文章能對您學習PHP有所幫助。
PHP字串處理詳解
PHP 字串處理 在PHP中,字串是一串字符的集合,可以是任何長度,並由單引號或雙引號包裝。 創建字串 在PHP中,我們可以使用單引號或雙引號來創建字串,例如: $single_quoted = '這是一個單引號字串'; $double_quoted = "這是一個雙引號字串"; 字串操作 PHP提供了許多內建函數來操作字串,下面是一些常用的函數: strlen(): 返回字串的長度 str_word_count(): 返回字串中的單詞數量 str_replace(): 在字串中替換一些字符 strtoupper()和strtolower(): 將字串轉換為大寫或小寫 字串連接 在PHP中,我們可以使用.運算符來連接兩個字串,例如: $first = "Hello, "; $second = "World!"; $greeting = $first . $second; // "Hello, World!" 字串比較 我們可以使用strcmp()函數來比較兩個字串,例如: $first = "apple"; $second = "banana"; $result = strcmp($first, $second); // -1 如果兩個字串相同,strcmp()將返回0。如果第一個字串小於第二個字串,它將返回-1。如果第一個字串大於第二個字串,它將返回1。 結論 總的來說,PHP提供了許多強大的工具來處理字串。無論是創建字串,操作字串,還是比較字串,PHP都可以輕鬆完成。
深入理解PHP變數:類型、聲明、使用和轉換
PHP 變數介紹 在PHP程式語言中,變數是一種存儲信息的容器。變數的名稱可以是字母、數字和下劃線,但必須以字母或下劃線開頭。在PHP中,所有變數名稱都是以美元符號($)開頭的。 PHP 變數的種類 PHP中的變數可以分為四種主要類型:標量類型、複合類型、特殊類型和資源類型。 標量類型:包括布爾型(boolean)、整型(integer)、浮點型(float)和字符串型(string)。 複合類型:包括數組(array)和對象(object)。 特殊類型:包括NULL和回調/閉包型(callable)。 資源類型:包括數據庫連接、文件操作等。 PHP 變數的聲明和使用 在PHP中,我們使用等號(=)來給變數賦值。例如,$var = "Hello, World!"; 就是將字符串 "Hello, World!" 賦值給變數 $var。我們也可以使用unset()函數來銷毀變數。 PHP 變數的作用範圍 在PHP中,變數的作用範圍可以是本地的(local)、全局的(global)或者超全局的(superglobal)。本地變數只在其被定義的函數內部可用,而全局變數則可以在腳本的任何地方使用。超全局變數是在所有的作用範圍內都可用的內置變數,例如$_GET、$_POST等。 PHP 變數的轉換 PHP是一種弱類型語言,這意味著在大多數情況下,我們不需要手動將變數從一種類型轉換為另一種類型。然而,如果需要,我們可以使用一些內置的函數來進行類型轉換,例如intval()、floatval()、strval()等。 結語 總的來說,理解和掌握PHP變數的使用是成為一名有效的PHP開發人員的關鍵步驟。希望這篇文章能對你有所幫助。
PHP資料類型詳解
PHP資料型態 在PHP程式語言中,資料型態是一個重要的概念,它定義了變數可以存儲的資料類型。PHP提供了多種資料型態,包括整數、浮點數、字串、布林值、陣列、物件、NULL和資源。 整數 整數是沒有小數的數字,可以是正數或負數。例如: <?php $a = 1234; // 正整數 $b = -123; // 負整數 $c = 0123; // 八進制數 (等於十進制的83) $d = 0x1A; // 十六進制數 (等於十進制的26) ?> 浮點數 浮點數是有小數點的數字,也可以是科學記數法。例如: <?php $a = 1.234; $b = 1.2e3; $c = 7E-10; ?> 字串 字串是字符的序列。在PHP中,可以使用單引號或雙引號來定義一個字串。例如: <?php $a = 'Hello world!'; $b = "Hello world!"; ?> 布林值 布林值是一種特殊的資料型態,只有兩個值:真(True)或假(False)。例如: <?php $a = true; $b = false; ?> 陣列 陣列是存儲多個值的一種資料結構。例如: <?php $cars = array("Volvo", "BMW", "Toyota"); ?> 物件 物件是存儲資料和對資料進行操作的一種資料結構。例如: <?php class Car { function Car()...
PHP echo和print語句的深入理解
PHP echo和print語句 在PHP中,我們經常需要將資訊輸出到瀏覽器上。這時候,我們就需要使用到PHP的輸出語句。在PHP中,主要有兩種輸出語句,分別是echo和print。雖然這兩種語句在功能上非常相似,但在使用上還是有一些細微的差別。 echo語句 echo是一種語言結構,用於輸出一個或多個字串。echo沒有返回值,且可以輸出一個或多個字串。例如: <?php echo "Hello, world!"; ?> 這段程式碼會在瀏覽器上輸出"Hello, world!"。 print語句 print也是一種語言結構,用於輸出一個字串。print有一個返回值1,且只能輸出一個字串。例如: <?php print "Hello, world!"; ?> 這段程式碼也會在瀏覽器上輸出"Hello, world!"。 echo和print的差異 echo和print在大多數情況下可以互換使用,但還是有一些細微的差異。 echo可以輸出一個或多個字串,print只能輸出一個字串。 echo沒有返回值,print的返回值為1。 echo的速度略快於print。 選擇echo還是print 在實際開發中,選擇使用echo還是print主要取決於個人喜好和具體需求。如果需要輸出多個字串,或者追求程式運行速度,可以選擇使用echo。如果需要知道輸出是否成功,可以選擇使用print。 結語 總的來說,echo和print都是PHP中非常重要的輸出語句,理解它們的使用方法和差異,對於學習PHP有著至關重要的作用。
深入了解PHP註釋的重要性和使用方法
PHP註釋的重要性 在程式設計中,註釋是一個重要元素,它可以幫助我們理解和解釋程式碼的功能。在PHP中,我們有多種方式可以添加註釋,這些註釋對於程式碼的維護和理解都有很大的幫助。 PHP註釋的種類 在PHP中,我們主要有三種類型的註釋: 單行註釋:以兩個斜線(//)或一個井號(#)開頭。 多行註釋:以斜線星號(/*)開頭,以星號斜線(*/)結尾。 文件註釋:以兩個星號斜線(/**)開頭,以星號斜線(*/)結尾,通常用於生成自動文檔。 如何使用PHP註釋 在PHP中使用註釋非常簡單,以下是一些範例: <?php // 這是一個單行註釋 # 這也是一個單行註釋 /* 這是一個多行註釋 可以跨越多行 */ /** * 這是一個文件註釋 * 通常用於生成自動文檔 */ ?> 註釋的重要性 註釋對於程式碼的維護和理解都有很大的幫助。它可以幫助我們記錄程式碼的功能和用途,也可以幫助其他開發者理解我們的程式碼。在複雜的項目中,註釋是必不可少的。
PHP array_filter把0刪掉了:保留零值與JSON列表的寫法
商品庫存明明是0,PHP整理欄位後卻不見了?先找程式裡有沒有直接呼叫array_filter($values)。省略判斷函式時,它會移除PHP視為空的值,整數0與字串'0'都在其中。若0代表缺貨、免費或未使用次數,這樣清資料就可能把有意義的值一起刪掉。 要修正這個問題,先說清楚哪些值應該移除。下面用虛構資料示範:只去掉空字串與null,保留兩種零;若結果要作為JSON列表交給前端,再把數字索引排回連續順序。 先重現:不用callback,兩種零都被移除 把以下程式存成filter-demo.php,在已安裝PHP的練習環境執行php filter-demo.php。這段程式只處理記憶體裡的陣列,不會寫入商品資料庫。 <?php $values = [0, '0', '', null, 12]; $filtered = array_filter($values); var_export($filtered); echo PHP_EOL; echo json_encode($filtered), PHP_EOL; 結果只剩索引4的12,JSON會是{"4":12}。這裡有兩個不同原因:預設篩選把零值移除,而array_filter()保留原本的鍵。不是JSON把0刪掉,也不是前端憑空把陣列改成物件。 只刪空字串與null:用嚴格比較保留0 如果你的需求確實是「只刪空字串與null」,把篩選條件寫出來。這裡要用!==,避免把不同型別先轉換後再比較。 <?php $values = [0, '0', '', null, 12]; $filtered = array_filter($values, static function ($value) { return $value !== '' && $value !== null; }); var_export($filtered); echo PHP_EOL; echo json_encode($filtered), PHP_EOL; 現在索引0、1、4分別保留整數0、字串'0'與12。JSON結果是{"0":0,"1":"0","4":12}:零回來了,但鍵還沒有重排,因此仍是JSON物件。 這個條件也會保留false、空陣列與只含空白的字串。它們是否有效,要依欄位規格決定;例如庫存欄位還需要另外驗證數字與允許範圍。不要把「保留0」誤當成整份輸入已驗證合格。 前端要JSON列表,再用array_values重排 當介面約定回傳列表,例如[0,"0",12],可在篩選後呼叫array_values()。它回傳值組成的新陣列,數字索引從0重新連續排列。 <?php $values = [0, '0', '', null, 12]; $filtered = array_filter($values, static function ($value) { return $value !== '' && $value...
PHP2Shell SSH 處理教學:停用上傳進度、升級 PHP 與重啟驗證
能登入 SSH 的站長,處理 PHP2Shell 時先做三件事:找出網站真正使用的 PHP、在正確位置套用臨時緩解、更新 PHP 並重啟對應工作程序。下面以 Ubuntu 24.04、APT 安裝的 PHP 8.3-FPM 為完整操作例子,另說明寶塔及 Docker 的分流;路徑與服務名稱要跟自己的環境核對,不能整篇不看就貼上。 PHP 官方已在 2026 年 10 月 21 日修補 CVE-2026-109618 與 CVE-2026-109619。上游修補版是 8.2.35、8.3.36、8.4.27、8.5.12。發行版可能回移修補,請比對完整套件版本;例如 Ubuntu 24.04 的公告修補版為 8.3.6-0ubuntu0.24.04.13。 登入 SSH 後,先看 PHP 是誰安裝的 先執行以下唯讀命令。它們用來找線索,尚未改動設定或更新套件: cat /etc/os-release command -v php php -v php --ini ps -eo pid,ppid,args | grep '[p]hp-fpm' systemctl list-units --type=service --all | grep -E 'php.*fpm|apache2|httpd' php -v 和 php --ini 顯示的是命令列 PHP,未必是網站的 PHP。還要對照網站的 Nginx/Apache 虛擬主機設定、FastCGI socket,以及對應 FPM master 的啟動路徑。寶塔可能使用自己的 PHP 目錄;容器內的 PHP 也不會隨宿主機的 APT...
- 1
- 2
