【自学笔记】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语言基础知识点总览。
相关文章:
【自学笔记】PHP语言基础知识点总览-持续更新
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1. PHP 简介2. PHP 环境搭建3. 基本语法变量与常量数据类型运算符 4. 控制结构条件语句循环语句 5. 函数函数定义与调用作用域 6. 数组7. 字符串8. 表单处理9. 会话…...
FAST-LIVO2 Fast, Direct LiDAR-Inertial-Visual Odometry论文阅读
FAST-LIVO2 Fast, Direct LiDAR-Inertial-Visual Odometry论文阅读 论文下载论文翻译FAST-LIVO2: 快速、直接的LiDAR-惯性-视觉里程计摘要I 引言II 相关工作_直接方法__LiDAR-视觉(-惯性)SLAM_ III 系统概述IV 具有顺序状态更新的误差状态迭代卡尔曼滤波…...
【Git】--- Git远程操作 标签管理
Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: Git 前面我们学习的操作都是在本地仓库进行了,如果团队内多人协作都在本地仓库操作是不行的,此时需要新的解决方案 --- 远程仓库。…...
Docker学习之服务编排(day9)
文章目录 前言一、问题描述二、解决方案1.安装Docker Compose1.1 [github下载相应版本](https://github.com/docker/compose/releases)1.2 将下载的文件移动到 /usr/local/bin 目录,确保它能够被系统识别为可执行文件1.3 赋予执行权限1.4 验证安装1.5 创建软链 2. 使…...
前后端常见模型以及相关环境配置介绍
一、前端常见框架 Vue.js 特点:采用数据驱动的响应式编程,组件化的开发模式使得代码结构清晰,易于维护,且学习成本相对较低,适合初学者和快速迭代的项目。应用场景:广泛应用于各类 Web 应用开发ÿ…...
职能型组织、项目型组织、矩阵型组织的介绍及优缺点比较
PMP考试中,经常会涉及到职能型组织、项目型组织、矩阵型组织的比较,下面简单介绍下职能型组织、项目型组织、矩阵型组织及其优缺点: 一、职能型组织 定义:以专业职能划分部门(如财务、技术、市场等)&…...
Java基本类型深度解析:从内存模型到高效编程实践
Java基本类型深度解析:从内存模型到高效编程实践 一、Java基本类型概述 Java作为强类型语言,定义了8种基本数据类型(Primitive Types),这些类型直接存储数据值而非对象引用,是构建Java程序的基础。它们的…...
论文阅读笔记——ST-4DGS,WideRange4D
ST-4DGS ST-4DGS 论文 在 4DGS 中,变形场 F \mathcal{F} F 与运动参数 X 和形状参数 ( S , R ) (S,R) (S,R) 高度耦合,导致训练时高斯表示紧凑型退化,影响动态渲染质量。由此,本文提出两种方法解耦运动与形状参数,保…...
[python]基于yolov8实现热力图可视化支持图像视频和摄像头检测
YOLOv8 Grad-CAM 可视化工具 本工具基于YOLOv8模型,结合Grad-CAM技术实现目标检测的可视化分析,支持图像、视频和实时摄像头处理。 功能特性 支持多种Grad-CAM方法实时摄像头处理视频文件处理图像文件处理调用简单 环境要求 Python 3.8需要电脑带有…...
五.ubuntu20.04 - ffmpeg推拉流以及Nginx、SRS本地部署
一.本地部署nginx 1.编译ffmpeg,参考这位博主的,编译选项有的enable找不到的不需要的可以直接删除,但是像sdl(包含ffplay)、h264、h265这些需要提前下载好,里面都有下载指令。 Ubuntu20.04 编译安装 FFmp…...
深度神经网络全解析:原理、结构与方法对比
深度神经网络全解析:原理、结构与方法对比 1. 引言 随着人工智能的发展,深度神经网络(Deep Neural Network,DNN)已经成为图像识别、自然语言处理、语音识别、自动驾驶等领域的核心技术。相比传统机器学习方法&#x…...
豪越科技消防一体化平台:打通消防管理“任督二脉”
在城市的车水马龙间,火灾隐患如潜藏的暗礁,威胁着人们的生命财产安全。传统消防管理模式在现代社会的复杂环境下,逐渐显露出诸多弊端。内部管理分散混乱,人员、装备、物资管理缺乏统一标准和高效流程;外部监管困难重重…...
【Matlab】-- 基于MATLAB的美赛常用多种算法
文章目录 文章目录 01 内容概要02 各种算法基本原理03 部分代码04 代码下载 01 内容概要 本资料集合了多种数学建模和优化算法的常用代码资源,旨在为参与美国大学生数学建模竞赛(MCM/ICM,简称美赛)的参赛者提供实用的编程工具和…...
机器学习课程
前言 课程代码和数据文件: 一、机器学习概述 1.1.人工智能概述 机器学习和人工智能,深度学习的关系 机器学习是人工智能的一个实现途径深度学习是机器学习的一个方法发展而来 达特茅斯会议-人工智能的起点 1956年8月,在美国汉诺斯小镇宁静…...
AIGC(生成式AI)试用 28 -- 跟着清华教程学习 - AIGC发展研究 3.0
目标:继续学习 - 信息不对称、不平等、隐私泄露和数据滥用 - 问、改、创、优 - “概率预测(快速反应)”模型和“链式推理(慢速思考)”模型 - 思维滞环现象解决思路:1.调整提问:改变问题方式&…...
问题:md文档转换word,html,图片,excel,csv
文章目录 问题:md文档转换word,html,图片,excel,csv,ppt**主要职责****技能要求****发展方向****学习建议****薪资水平** 方案一:AI Markdown内容转换工具打开网站md文档转换wordmd文档转换pdfm…...
【Java】面向对象之static
用static关键字修饰成员变量 有static修饰成员变量,说明这个成员变量是属于类的,这个成员变量称为类变量或者静态成员变量。 直接用 类名访问即可。因为类只有一个,所以静态成员变量在内存区域中也只存在一份。所有的对象都可以共享这个变量…...
解决:在运行 plt.show()`时,程序会等待你手动关闭图片窗口才能继续往下执行
你这个问题本质是: 在运行 plt.show() 时,程序会等待你手动关闭图片窗口才能继续往下执行。 这其实是 matplotlib 的默认行为 —— 它会弹出一个交互式窗口让你“看完图再走”。 ✅ 为什么会这样? 你在程序中使用了: import mat…...
Anaconda安装-Ubuntu-Linux
1、进入Anaconda官网,以下载最新版本,根据自己的操作系统选择适配的版本。 2、跳过注册: 3、选择适配的版本: 4、cd ~/anaconda_download 5、bash Anaconda3-2024.10-1-Linux-x86_64.sh 6、按Enter或PgDn键滚动查看协议&…...
Linux 配置NFS服务器
1. 开放/nfs/shared目录,供所有用户查阅资料 服务端 (1)安装nfs服务,nfs-utils包中包含rpcbind(rpc守护进程) [rootnode1-server ~]# yum install -y nfs-utils # nfs-utils包中包含rpcbind [rootnode…...
css100个问题
一、基础概念 CSS的全称及作用是什么?行内样式、内部样式表、外部样式表的优先级?解释CSS的层叠性(Cascading)CSS选择器优先级计算规则伪类与伪元素的区别?举例说明!important的作用及使用注意事项如何继承父元素字体…...
塔能科技:用精准节能撬动社会效益的行业杠杆
在全球积极践行可持续发展理念的当下,能源高效利用与节能减排,已然成为各行各业实现高质量发展绕不开的关键命题。对企业来说,节能早已不是一道可做可不做的选择题,而是关乎生存与发展、社会责任与竞争力的必答题。塔能科技推出的…...
Java 大视界 -- Java 大数据在自动驾驶高精度地图数据更新与优化中的技术应用(157)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
Conda配置Python环境
1. 安装 Conda 选择发行版: Anaconda:适合需要预装大量科学计算包的用户(体积较大)。 Miniconda:轻量版,仅包含 Conda 和 Python(推荐自行安装所需包)。 验证安装: co…...
nginx https配置
一.https配置 HTTPS 协议是由HTTP 加上TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。 1.生成证书 openssl genrsa -des3 -out server.key 20…...
每日一题洛谷P10901 [蓝桥杯 2024 省 C] 封闭图形个数c++
排序思想,只不过这时的排序与之前的略有不同,com函数中要先比较封闭图形再比较真实的大小,多了一步,但是原理还是一样的 #include<iostream> #include<algorithm> #include<vector> using namespace std; //统…...
拓展知识六:MetInfo6.0.0目录遍历漏洞原理分析
所需进行代码审计的文件路径: C:\phpStudy\WWW\MetInfo6.0.0\include\thumb.php C:\phpStudy\WWW\MetInfo6.0.0\app\system\entrance.php C:\phpStudy\WWW\MetInfo6.0.0\app\system\include\class\load.class.php C:\phpStudy\WWW\MetInfo6.0.0\app\system\include…...
tar包部署rabbitMQ
部署erlang: 有网使用: sudo apt-get update sudo apt-get install libncurses5-dev libncursesw5-dev sudo yum install ncurses-devel 无网使用 tar zxvf ncurses.tar.gz mkdir ncurses cd ncurses-6.3/ ./configure --with-shared --without-debu…...
天锐蓝盾终端安全防护——企业终端设备安全管控
从办公室的台式电脑到员工手中的移动终端,这些设备不仅是工作的得力助手,更是企业数据的重要载体。然而,随着终端设备的广泛使用,安全风险也如影随形。硬件设备使用不当、数据随意传输等问题频发,使得企业数据面临着泄…...
MySQL高级特性与大数据应用
事务与锁机制 1.1 事务控制 START TRANSACTION; UPDATE account SET balance balance - 500 WHERE user_id 1001; UPDATE account SET balance balance 500 WHERE user_id 2002; COMMIT; -- 显式提交事务 ROLLBACK; -- 异常时回滚 1.2 锁机制 锁类型:共…...
