PHP 基础介绍
PHP 学习资料
PHP 学习资料
PHP 学习资料
PHP 是一种广泛使用的开源服务器端脚本语言,尤其适合 Web 开发,能轻松嵌入 HTML 中,生成动态网页内容。接下来,让我们一起了解 PHP 的基础内容。
一、PHP 的安装与配置
在开始编写 PHP 代码之前,需要搭建一个 PHP 开发环境,具体步骤如下:
(一)下载 PHP
访问 PHP 官方网站(https://www.php.net/downloads.php ),根据你的操作系统选择合适的版本进行下载。例如,Windows 系统可选择 Windows installer 版本,Linux 系统则可选择适合的源码包或二进制包。
(二)解压与安装
Windows 系统:下载完成后,将压缩包解压到指定目录,如C:\php。解压后,找到php.exe文件,将其移动到你希望使用的 PHP 执行路径下,比如C:\php\bin 。
Linux 系统:如果下载的是源码包,需先解压,然后进入解压目录,执行一系列配置、编译和安装命令,如./configure、make、make install等 。如果是二进制包,解压到指定目录即可。
(三)配置环境变量
Windows 系统:按下快捷键Win+R,输入control sysdm.cpl,EnvironmentVariables并点击 “确定”。在弹出的系统属性窗口中,找到 “系统变量” 部分,双击 “Path” 变量进行编辑,将 PHP 的安装路径(例如C:\php\bin)添加到 “变量值” 中,已有其他路径则用分号隔开。
Linux 系统:编辑~/.bashrc或/etc/profile文件,在文件末尾添加export PATH=$PATH:/path/to/php ,其中/path/to/php为 PHP 的安装路径,保存文件后执行source ~/.bashrc或source /etc/profile使配置生效。
(四)修改 php.ini 文件
在 PHP 安装目录下找到php.ini文件,该文件是 PHP 的核心配置文件。如果没有找到,可以复制php.ini-development或php.ini-production文件并重命名为php.ini。
根据需要修改一些配置项,如将display_errors设置为On,以便在开发过程中能够看到错误信息;启用扩展时,去掉相应扩展前的分号,如;extension=mysqli改为extension=mysqli 。
(五)测试 PHP 环境
在 Web 服务器的文档根目录下(如 Windows 系统的C:\inetpub\wwwroot,Linux 系统的/var/www/html)创建一个名为test.php的文件,内容如下:
<?php
phpinfo();
?>
打开浏览器,输入网址http://localhost/test.php(如果你的 Web 服务器配置了其他域名或端口,需相应修改),如果看到 PHP 信息页面,则表示 PHP 环境已成功搭建。
二、基本语法
PHP 代码标识:PHP 代码通常嵌入在 HTML 文件中,用<?php和?>标签包裹起来。例如:
<!DOCTYPE html>
<html>
<head><title>PHP示例</title>
</head>
<body><?phpecho "这是一段PHP代码";?>
</body>
</html>
语句结束符:每个 PHP 语句都以分号;结束,表示一条语句的结束。例如:
$name = "张三";
echo $name;
注释:PHP 支持两种注释方式,单行注释使用//,多行注释使用/* */。例如:
// 这是单行注释
/*
这是
多行注释
*/
三、变量
变量声明:在 PHP 中,变量以$符号开头,后面跟着变量名。变量名必须以字母或下划线开头,后面可以跟字母、数字或下划线。例如:
$age = 20;
$username = "李四";
变量赋值:可以使用=运算符为变量赋值。PHP 支持多种数据类型的赋值,如字符串、整数、浮点数、布尔值等。例如:
$num = 10; // 整数
$price = 9.99; // 浮点数
$isStudent = true; // 布尔值
$message = "欢迎来到PHP世界"; // 字符串
变量作用域:PHP 变量有三种作用域,分别是局部作用域、全局作用域和静态作用域。在函数内部定义的变量具有局部作用域,只在函数内部有效;在函数外部定义的变量具有全局作用域,在整个脚本中都有效;使用static关键字定义的变量具有静态作用域,在函数调用之间保持其值。例如:
$globalVar = "全局变量"; // 全局变量
function test() {$localVar = "局部变量"; // 局部变量static $staticVar = 0; // 静态变量$staticVar++;echo $localVar. "<br>";echo $staticVar. "<br>";
}
test();
test();
echo $globalVar;
四、数据类型
PHP 支持多种数据类型,主要包括:
字符串(String):表示一个字符序列,可以用单引号或双引号括起来。例如:
$str1 = 'Hello, World!';
$str2 = "你好,PHP";
整数(Integer):表示整数,支持十进制、八进制和十六进制表示。例如:
$int1 = 10; // 十进制
$int2 = 012; // 八进制,相当于十进制的10
$int3 = 0xA; // 十六进制,相当于十进制的10
浮点数(Float):表示带小数点的数字。例如:
$float1 = 3.14;
$float2 = 1.23e5; // 科学计数法,相当于123000
布尔值(Boolean):表示真(true)或假(false)。例如:
$isTrue = true;
$isFalse = false;
数组(Array):用于存储多个值的集合。可以使用索引数组或关联数组。例如:
// 索引数组
$fruits = array("苹果", "香蕉", "橘子");
// 关联数组
$person = array("name" => "王五", "age" => 25, "city" => "北京");
对象(Object):表示一个类的实例。需要先定义类,然后通过new关键字创建对象。例如:
class Person {public $name;public $age;public function __construct($name, $age) {$this->name = $name;$this->age = $age;}public function sayHello() {echo "大家好,我是". $this->name. ",今年". $this->age. "岁。";}
}
$p = new Person("赵六", 30);
$p->sayHello();
NULL:表示没有值或空值。例如:
$var = NULL;
通过以上对 PHP 安装与配置、基本语法、变量和数据类型的介绍,相信你已经对 PHP 基础有了初步的了解。接下来,可以通过更多的实践和学习,深入掌握 PHP 的强大功能,开发出优秀的 Web 应用程序。
相关文章:
PHP 基础介绍
PHP 学习资料 PHP 学习资料 PHP 学习资料 PHP 是一种广泛使用的开源服务器端脚本语言,尤其适合 Web 开发,能轻松嵌入 HTML 中,生成动态网页内容。接下来,让我们一起了解 PHP 的基础内容。 一、PHP 的安装与配置 在开始编写 PH…...
DeepSeek如何重塑我的编程学习:计算机新生的AI实践
目录 🚀前言🌟邂逅DeepSeek:从困惑到惊喜💯初学编程的困境💯DeepSeek的优势 🖊️DeepSeek在编程学习中的运用💯注释💯算法逐步分析💯调试帮助💯跨语言迁移学习…...
spring boot和spring cloud的关系
Spring Boot和Spring Cloud之间的关系可以概括为构建和扩展的关系,其中Spring Boot提供了基础,而Spring Cloud在此基础上提供了分布式系统和微服务架构所需的扩展和工具。以下是两者关系的详细阐述: 一、基础与扩展 Spring Boot:…...
ThreadLocal原理和存在问题
ThreadLocal 的工作原理 ThreadLocal 是 Java 提供的一个类,用于在多线程环境下存储线程局部变量。每个线程都可以独立地更改存储在其 ThreadLocal 变量中的值,而不会影响其他线程中的变量副本。ThreadLocal 的实现原理基于 Thread 类中的 ThreadLocal.…...
用Echarts的柱状图实现圆柱体效果
用Echarts的柱状图实现圆柱体效果 在数据可视化的世界里,Echarts凭借其强大的功能和丰富的特性,成为众多开发者的首选工具。本文将深入探讨如何利用Echarts的柱状图来实现独特的圆柱体效果,通过详细剖析代码,让大家了解其中的实现…...
Docker 常用命令基础详解(一)
一、Docker 初相识 在当今数字化时代,软件开发和部署的效率与灵活性成为了关键因素。Docker,作为一款开源的应用容器引擎,犹如一颗璀璨的明星,照亮了软件开发与部署的道路,为开发者们带来了前所未有的便利。它就像是一…...
Java并发中的CAS机制:原理、应用与挑战(通俗易懂版)
上一期文章内容:Java并发中的乐观锁与悲观锁, 本期文章我们来讲一下Java并发中的CAS机制 一、从银行账户案例理解CAS CAS 是一种乐观锁机制,用于在不使用锁的情况下实现多线程对共享资源的并发访问。 它包含三个操作数:内存位置&a…...
腾讯发布混元-3D 2.0: 首个开源高质3D-DiT生成大模型
在之前的文章中已经和大家介绍过腾讯HunYuan-3D 1.0,感兴趣的小伙伴可以点击下面链接阅读~ HunYuan-3D 是首个开源高质3D-DiT生成大模型,几何与纹理解藕生成,一键将创意具象化。 2.0模型架构图及介绍 2.0模型将几何和纹理生成解耦࿰…...
【机器学习】线性回归与一元线性回归
线性回归与一元线性回归 V1.1线性回归问题线性方程的最优解一元线性回归一元线性回归的方程一元线性回归距离衡量方法一元线性回归的最优化求解一元线性回归的最小二乘法解法 V1.1 线性回归问题 线性回归问题就是找一条线或超平面,并使用线或超平面来描述数据分布…...
哈希表-两个数的交集
代码随想录-刷题笔记 349. 两个数组的交集 - 力扣(LeetCode) 内容: 集合的使用 , 重复的数剔除掉,剩下的即为交集,最后加入数组即可。 class Solution {public int[] intersection(int[] nums1, int[] nums2) {Set<Integer…...
望远镜成像系统--科学评价光学镜头
望远镜是一种利用透镜或反射镜以及其他光学器件观测遥远物体的光学仪器。其原理是通过透镜的折射或反射镜的反射,将光线聚焦成像,再经过一个放大目镜进行观察。日常生活中的光学望远镜又称“天文望远镜”。1608年,荷兰的一位眼镜商汉斯利伯希…...
服务器延迟给视频网站造成的影响
在数字化时代中,网络视频已经成为人们日常娱乐和获取信息的重要平台,网络视频的流畅性会影响着用户的体验度,那么,当服务器出现延迟会对视频网站造成哪些影响呢?本文就来共同了解一下吧! 当所使用的服务器由…...
C++算法竞赛基础语法-9
快速排序是一种高效的排序算法,由C. A. R. Hoare在1960年提出,基本思想是分治法(Divide and Conquer)策略,通过递归将一个大问题分解为若干个较小的子问题,然后合并这些子问题的解来解决原始问题 快速排序…...
国产编辑器EverEdit - 极简追梦人的福音:迷你查找
1 迷你查找 1.1 应用场景 某些场景下,用户不希望调出复杂的查找对话框,此时可以使用迷你查找窗口。 1.2 使用方法 选择主菜单查找 -> 迷你查找,或使用快捷键Ctrl Alt F,会在右上角弹出迷你查找窗口,如下图所示…...
Flutter 异步编程利器:Future 与 Stream 深度解析
目录 一、Future:处理单次异步操作 1. 概念解读 2. 使用场景 3. 基本用法 3.1 创建 Future 3.2 使用 then 消费 Future 3.3 特性 二、Stream:处理连续异步事件流 1. 概念解读 2. 使用场景 3. 基本用法 3.1 创建 Stream 3.2 监听 Stream 3.…...
数据结构 day05
数据结构 day05 5. 队列5.3. 链式队列5.3.1. 特征5.3.2. 代码实现 6. 双向链表6.1. 特性6.2. 代码实现 5. 队列 5.3. 链式队列 5.3.1. 特征 逻辑结构:线性结构 存储结构:链式存储 操作:创建、入列、出列、判空、清空 5.3.2. 代码实现 头文…...
股票数据接口API实例代码python、JAVA等多种语言演示免费获取实时数据、历史数据、CDMA、KDJ等指标数据配有API说明文档
本文中所有接口均可直接在浏览器打开获取数据,为了便于大家验证有效性,已经做好了超链接,直接点击即可! 沪深两市股票列表 API接口链接(可点击验证):https://api.mairui.club/hslt/list/b…...
【Map vs Set】:Java数据存储的“双子星”对决
个人主页:♡喜欢做梦 欢迎 👍点赞 ➕关注 ❤️收藏 💬评论 目录 🍰一、搜索 🍮1.概念 🍮2.模型 🍰二、Map 🍨1.什么是Map? 🍨2.Map的实例化 &…...
ollama+langchain+deepseek本机跑通大模型
一、部署deepseek Ollama,这是是一个开源的大语言模型平台,它允许用户在本地环境中运行、创建和共享大型语言模型。Ollama提供了丰富的功能和特性,使得用户可以在自己的计算机上轻松地部署和运行大型语言模型。官网:https://ollam…...
03【FreeRTO队列-如何获取任务信息与队列的动静态创建】
一.利用 vTaskList()以及 vTaskGetRunTimeStats()来获取任务的信息 1.现象与开启启用宏 freeRTOSConfig.h //必须启用 #define configUSE_TRACE_FACILITY 1 #define configGENERATE_RUN_TIME_STATS 1 #define configUSE_STATS_FORMATTING_FUNCTIONS…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
