【自學筆記】PHP語言基礎知識點總覽-持續更新

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

文章目錄

        • 1. PHP 簡介
        • 2. PHP 環境搭建
        • 3. 基本語法
          • 變量與常量
          • 數據類型
          • 運算符
        • 4. 控制結構
          • 條件語句
          • 循環語句
        • 5. 函數
          • 函數定義與調用
          • 作用域
        • 6. 數組
        • 7. 字符串
        • 8. 表單處理
        • 9. 會話管理
          • Cookies
          • Sessions
        • 10. 文件操作
        • 11. 面向對象編程
          • 類與對象
          • 繼承與多態
        • 12. 代碼示例
  • 總結


1. PHP 簡介

PHP(Hypertext Preprocessor)是一種廣泛使用的開源腳本語言,尤其適用于 Web 開發,并可嵌入到 HTML 中。

2. PHP 環境搭建
  • 安裝 XAMPP/WAMP/MAMP(根據操作系統選擇)
  • htdocs(XAMPP)/www(WAMP/MAMP)目錄下創建 PHP 文件
  • 啟動服務器,訪問 http://localhost/yourfile.php
3. 基本語法
變量與常量
<?php
$variable = "Hello, World!"; // 變量
define("CONSTANT", "This is a constant"); // 常量
echo $variable; // 輸出變量
echo CONSTANT; // 輸出常量
?>
數據類型

PHP 支持多種數據類型,包括字符串、整數、浮點數、布爾值、數組、對象等。

運算符
<?php
$a = 5 + 3; // 算術運算符
$b = $a == 8 ? true : false; // 三元運算符
$c = $a > 3 && $a < 10; // 邏輯運算符
echo $a, $b, $c;
?>
4. 控制結構
條件語句
<?php
$number = 10;
if ($number > 5) {echo "Number is greater than 5";
} elseif ($number == 5) {echo "Number is equal to 5";
} else {echo "Number is less than 5";
}
?>
循環語句
<?php
for ($i = 0; $i < 10; $i++) {echo $i;
}$j = 0;
while ($j < 10) {echo $j;$j++;
}
?>
5. 函數
函數定義與調用
<?php
function greet($name) {return "Hello, " . $name;
}echo greet("Alice"); // 調用函數
?>
作用域
<?php
$globalVar = "I am global";function testScope() {$localVar = "I am local";echo $globalVar; // 可以訪問全局變量// echo $localVar; // 局部變量只能在函數內部訪問
}testScope();
?>
6. 數組
<?php
$fruits = array("apple", "banana", "cherry"); // 數組定義
echo $fruits[0]; // 訪問數組元素$assocArray = array("first" => "Jane", "last" => "Doe"); // 關聯數組
echo $assocArray["first"]; // 訪問關聯數組元素
?>
7. 字符串
<?php
$str = "Hello, World!";
$length = strlen($str); // 獲取字符串長度
$upperStr = strtoupper($str); // 轉換為大寫
echo $length, $upperStr;
?>
8. 表單處理
<!-- form.html -->
<form action="process.php" method="post"><input type="text" name="username"><input type="submit" value="Submit">
</form>
<!-- process.php -->
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {$username = $_POST['username'];echo "Username is: " . htmlspecialchars($username);
}
?>
9. 會話管理
Cookies
<?php
setcookie("user", "John Doe", time() + (86400 * 7)); // 設置 cookie
echo "Cookie named 'user' is set!<br>";
echo "Value is: " . $_COOKIE["user"]; // 訪問 cookie
?>
Sessions
<?php
session_start();
$_SESSION["username"] = "John Doe"; // 設置 session 變量
echo "Session variable 'username' is set!<br>";
echo "Value is: " . $_SESSION["username"]; // 訪問 session 變量
?>
10. 文件操作
<?php
$file = fopen("example.txt", "w"); // 打開文件用于寫入
fwrite($file, "Hello, World!"); // 寫入文件
fclose($file); // 關閉文件$file = fopen("example.txt", "r"); // 打開文件用于讀取
$content = fread($file, filesize("example.txt")); // 讀取文件內容
fclose($file); // 關閉文件echo $content; // 輸出文件內容
?>
11. 面向對象編程
類與對象
<?php
class Car {public $color;function __construct($color = "red") {$this->color = $color;}function getColor() {return $this->color;}
}$myCar = new Car("blue");
echo $myCar->getColor(); // 輸出 "blue"
?>
繼承與多態
<?php
class Animal {public function speak() {return "Some sound";}
}class Dog extends Animal {public function speak() {return "Bark";}
}$animal = new Animal();
$dog = new Dog();echo $animal->speak(); // 輸出 "Some sound"
echo $dog->speak(); // 輸出 "Bark"
?>
12. 代碼示例

以下是一個完整的 PHP 程序示例,它結合了上述多個知識點:

<!-- index.php -->
<?php
session_start();if ($_SERVER["REQUEST_METHOD"] == "POST") {$_SESSION["username"] = htmlspecialchars($_POST['username']);header("Location: welcome.php");exit();
}
?><!DOCTYPE html>
<html>
<head><title>PHP Login Example</title>
</head>
<body><form action="" method="post"><label for="username">Username:</label><input type="text" id="username" name="username"><input type="submit" value="Login"></form>
</body>
</html>
<!-- welcome.php -->
<?php
session_start();if (!isset($_SESSION["username"])) {header("Location: index.php");exit();
}echo "Welcome, " . $_SESSION["username"] . "!";
?>

在這個示例中,用戶可以在 index.php 頁面輸入用戶名并提交表單。表單數據通過 POST 方法發送到相同的頁面進行處理,用戶名被存儲在會話中,并且用戶被重定向到 welcome.php 頁面,該頁面顯示歡迎信息。如果用戶沒有通過會話驗證,他們將被重定向回登錄頁面。


總結

提示:這里對文章進行總結:
例如:以上就是今天要講的內容,自學記錄PHP語言基礎知識點總覽。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/73956.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/73956.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/73956.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

css選擇最后結尾的元素DOM

前言 選中最后一個元素&#xff0c;實際使用非常頻繁。 解決方案 使用 CSS 提供的選擇器&#xff0c;即可完成。 如下代碼示例&#xff0c;兩種選擇器均可實現。 <p>...</p>p:last-child{ background:#ff0000; }p:nth-last-child(1){background:#ff0000; }p&…

Axios 相關的面試題

在跟著視頻教程學習項目的時候使用了axios發送請求&#xff0c;但是只是跟著把代碼粘貼上去&#xff0c;一些語法規則根本不太清楚&#xff0c;但是根據之前的博客學習了fetch了之后&#xff0c;一看axios的介紹就明白了。所以就直接展示axios的面試題吧 本文主要內容&#xff…

瑞芯微RKRGA(librga)Buffer API 分析

一、Buffer API 簡介 在瑞芯微官方的 librga 庫的手冊中&#xff0c;有兩組配置 buffer 的API&#xff1a; importbuffer 方式&#xff1a; importbuffer_virtualaddr importbuffer_physicaladdr importbuffer_fd wrapbuffer 方式&#xff1a; wrapbuffer_virtualaddr wrapb…

C語言:多線程

多線程概述 定義 多線程是指在一個程序中可以同時運行多個不同的執行路徑&#xff08;線程&#xff09;&#xff0c;這些線程可以并發或并行執行。并發是指多個線程在宏觀上同時執行&#xff0c;但在微觀上可能是交替執行的&#xff1b;并行則是指多個線程真正地同時執行&…

Linux線程池實現

1.線程池實現 全部代碼&#xff1a;whb-helloworld/113 1.喚醒線程 一個是喚醒全部線程&#xff0c;一個是喚醒一個線程。 void WakeUpAllThread(){LockGuard lockguard(_mutex);if (_sleepernum)_cond.Broadcast();LOG(LogLevel::INFO) << "喚醒所有的休眠線程&q…

微信小程序逆向開發

一.wxapkg文件 如何查看微信小程序包文件&#xff1a; 回退一級 點擊進入這個目錄 這個就是我們小程序對應的文件 .wxapkg概述 .wxapkg是微信小程序的包文件格式&#xff0c;且其具有獨特的結構和加密方式。它不僅包含了小程序的源代碼&#xff0c;還包括了圖像和其他資源文…

多輸入多輸出 | Matlab實現CPO-LSTM冠豪豬算法優化長短期記憶神經網絡多輸入多輸出預測

多輸入多輸出 | Matlab實現CPO-LSTM冠豪豬算法優化長短期記憶神經網絡多輸入多輸出預測 目錄 多輸入多輸出 | Matlab實現CPO-LSTM冠豪豬算法優化長短期記憶神經網絡多輸入多輸出預測預測效果基本介紹程序設計參考資料 預測效果 基本介紹 Matlab實現CPO-LSTM冠豪豬算法優化長短期…

視頻編碼器的抉擇:x264、x265、libaom、vvenc 對比測試實驗

264、x265、libaom、vvenc 對比測試實驗 測試機器配置&#xff1a;Apple M1 Pro -16G編碼器版本&#xff08;選擇自己編譯&#xff09;&#xff1a;所有源碼都是當前最新更新的狀態&#xff0c;此外各類編碼具體的編譯過程可參考我的相關系列博客。 編碼器GitHubx264git clon…

【二刷代碼隨想錄】雙指針-數組相關題型、推薦習題

一、雙指針-數組 相關題型與常用思路 1、單個數組 &#xff08;1&#xff09;原地移除元素類 如推薦習題中的&#xff08;1&#xff09;、&#xff08;2&#xff09;、&#xff08;3&#xff09;&#xff0c;都屬于此類。引入雙指針 pre、last &#xff0c;用 pre 指針表明數…

Level DB --- TableCache

TableCache 是Level DB 中重要的類&#xff0c;Level DB 中多層&#xff08;multi level&#xff09;&#xff0c;且每一層&#xff08;level&#xff09;有多個 key-value file&#xff0c;TableCache正是用來緩存多層以及多層中的file數據&#xff0c;更快速地檢索。 table …

搜索-BFS

馬上藍橋杯了&#xff0c;最近刷了廣搜&#xff0c;感覺挺有意思的&#xff0c;廣搜題類型都差不多&#xff0c;模板也一樣&#xff0c;大家寫的時候可以直接套模板 這里給大家講一個比較經典的廣搜題-迷宮 題目問問能否走到 (n,m) 位置&#xff0c;假設最后一個點是我們的&…

智能預測維護:讓設備“未卜先知”,減少宕機煩惱

智能預測維護:讓設備“未卜先知”,減少宕機煩惱 1. 引言:設備維護的痛點與出路 在工業生產和自動化領域,設備故障一直是令人頭疼的問題。設備一旦故障,輕則影響生產效率,重則造成嚴重損失,甚至帶來安全隱患。傳統的設備維護方式主要有兩種: 被動維護(Reactive Maint…

安卓的布局方式

一、RelativeLayout 相對布局 特點&#xff1a;每個組件相對其他的某一個組件進行定位。 (一)主要屬性 1、設置和父組件的對齊&#xff1a; alignParentTop &#xff1a; 設置為true&#xff0c;代表和父布局頂部對齊。 其他對齊只需要改變后面的Top為 Left、Right 或者Bottom&…

SSM中藥分類管理系統

&#x1f345;點贊收藏關注 → 添加文檔最下方聯系方式咨詢本源代碼、數據庫&#x1f345; 本人在Java畢業設計領域有多年的經驗&#xff0c;陸續會更新更多優質的Java實戰項目希望你能有所收獲&#xff0c;少走一些彎路。&#x1f345;關注我不迷路&#x1f345; 項目視頻 SS…

epoch、batch、batch size、step、iteration深度學習名詞含義詳細介紹

卷積神經網絡訓練中的三個核心概念&#xff1a;Epoch、Batch Size 和迭代次數 在深度學習中&#xff0c;理解一些基本的術語非常重要&#xff0c;這些術語對模型的訓練過程、效率以及最終性能都有很大影響。以下是一些常見術語的含義介紹&#xff1a; 1. Epoch&#xff08;周…

React(七):Redux

Redux基本使用 純函數&#xff1a;1.函數內部不能依賴函數外部變量&#xff1b;2.不能產生副作用&#xff0c;在函數內部改變函數外部的變量 React只幫我們解決了DOM的渲染過程&#xff0c;State還是要由我們自己來管理——redux可幫助我們進行管理 Redux三大特點 1.單一數…

《Android低內存設備性能優化實戰:深度解析Dalvik虛擬機參數調優》

1. 痛點分析&#xff1a;低內存設備的性能困局 現象描述&#xff1a;大應用運行時頻繁GC導致卡頓 根本原因&#xff1a;Dalvik默認內存參數與硬件資源不匹配 解決方向&#xff1a;動態調整堆內存參數以平衡性能與資源消耗 2. 核心調優參數全景解析 關鍵參數矩陣&#xff1…

STC89C52單片機學習——第38節: [17-2] 紅外遙控紅外遙控電機

寫這個文章是用來學習的,記錄一下我的學習過程。希望我能一直堅持下去,我只是一個小白,只是想好好學習,我知道這會很難&#xff0c;但我還是想去做&#xff01; 本文寫于&#xff1a;2025.03.30 51單片機學習——第38節: [17-2] 紅外遙控&紅外遙控電機 前言開發板說明引用…

計算機組成原理————計算機運算方法精講<1>原碼表示法

第一部分:無符號數和有符號數的概念 1.無符號數 計算機中的數均存放在寄存器當中,通常稱寄存器的位數為機器字長,所謂無符號數,就是指沒有fu5號的數,在寄存器中的每一位均可用來存放數值,當存放有符號數時,需要留出位置存放符號,機器字長相同時,無符號數與有符號數所…

【什么是機器學習——多項式逼近】

什么是機器學習——多項式逼近 機器學習可以分成三大類別,監督學習、非監督學習、強化學習。三大類別背后的數學原理不同。監督學習使用了數學分析中的函數逼近方法和概率統計中的極大似然方法;非監督學習使用聚類和EM算法;強化學習使用馬爾可夫決策過程的想法。 機器學習的…