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…...
CI/CD部署打包方法
项目目前部署方式: 各地区服务器打包同一个runner(需要互相排队,不并发)各地区客户端可以并发打包,同个地区客户端打多个包需要排队 部署方法 下载gitlab-runner: https://docs.gitlab.com/runner/insta…...
Unity-Mirror网络框架-从入门到精通之PlayerTest示例
文章目录 前言示例介绍PlayerReliable,PlayerUnreliable,PlayerHybrid区别PlayerControllerRB和PlayerController区别最后前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。本系列文章将为读者提供对Mirror网络框架的深入了解,涵盖从基础到高级的多个主…...
C++ 设计模式-抽象工厂
C中的抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一个接口,用来创建一系列相关或相互依赖的对象,而无需指定它们具体的类。通过抽象工厂模式,客户端可以通过工厂接口获取一系列产…...
ONES 功能上新|ONES Copilot、ONES TestCase、ONES Wiki 新功能一览
ONES Copilot 支持基于当前查看的工作项相关信息,利用 AI 模型,在系统中进行相似工作项的查找,包括基于已关联工作项的相似数据查找。 应用场景: 在查看工作项时,可利用 AI 模型,基于语义相似度,…...
Jenkins | Jenkins安装
Jenkins安装 一、前置准备二、启动三、登录 一、前置准备 下载安装包 war包 下载地址: https://www.jenkins.io/ 安装jdk 要求jdk11版本以上 集成maven项目的话 需要有maven 与 git 二、启动 启动命令 需要注意使用jdk11以上的版本 /usr/java/jdk17/bin/java -Xms2048m -X…...
JavaScript设计模式 -- 观察者模式
在实际开发中,经常会遇到这样一种需求:当某个对象状态发生改变时,需要自动通知并更新其他相关对象。观察者模式(Observer Pattern)正是为了解决这一问题而设计的,它定义了一种一对多的依赖关系,…...
DeepSeek AI 满血版功能集成到WPS或Microsoft Office中
DeepSeek AI集成到 WPS或Microsoft Office中, 由于deepseek被攻击或者非常繁忙导致超时的服务器,所以可以用硅基流动部署的DeepSeek 。当然用官网的也可以。 使用 OfficeAI 插件集成(wps为例): 下载并安装 OfficeAI 插件:从可靠的软件下载平台…...
单调队列与栈
一.题 1. 思路: 构建小压大的单调递减栈,对于每个栈的元素都进行处理并加到结果上 class Solution { public:int sumSubarrayMins(vector<int>& arr) {int stk[10000000],top 0;long long ans 0;for(int i 0;i<arr.size();i){while(top…...
阿里云sls查询两种查询方式学习:SQL查询和SPL 查询
一、阿里云日志服务 SPL 语法归纳 1. SPL 简介 SPL(Search Processing Language)用于查询和处理日志数据,支持检索、过滤、分析日志。 2. 基本查询语法 查询所有日志:* 条件过滤:response_status: error 多条件查…...
【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析①】
ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase01 作者:车端域控测试工程师 更新日期:2025年02月14日 关键词:UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-001测试用例 用例ID测试场景验证要点参考条款预期…...
从技术债务到架构升级,滴滴国际化外卖的变革
背 景 商家营销简述 在外卖平台的运营中,我们致力于通过灵活的补贴策略激励商家,与商家共同打造良好的合作关系,也会提供多样化的营销活动,帮助商家吸引更多用户下单。通过这些活动,不仅能够提高商家的销量,…...
第J2周:ResNet50V2算法实战与解析
文章目录 一、准备工作1.设置GPU2.导入数据3.查看数据 二、数据预处理1.加载数据2.可视化数据 总结 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、准备工作 1.设置GPU import tensorflow as tf gpus …...
如何使用 HPjtune 分析 Java GC 日志并优化 JVM 性能
HPjtune 是一款用于分析 Java 应用程序垃圾回收(GC)日志的工具,主要用于优化 JVM 性能。虽然 HPjtune 本身并不直接生成 HTML 格式的报告,但可以通过结合其他工具或方法将分析结果导出为 HTML 格式。以下是实现这一目标的步骤和方…...
【MySQL在Centos 7环境安装】
文章目录 一. 卸载不必要的环境二. 检查系统安装包三. 卸载这些默认安装包四. 获取mysql官⽅yum源五. 安装mysql yum 源,对⽐前后yum源六. 看看能不能正常⼯作七. 安装mysql服务八. .查看配置⽂件和数据存储位置九. 启动服务并查看服务是否存在十. 登陆⽅法十一. 设…...
PostgreSQL技术内幕25:时序数据库插件TimescaleDB
文章目录 0.简介1.基础知识1.1 背景1.2 概念1.3 特点 2.TimescaleDB2.1 安装使用2.1 文件结构2.2 原理2.2.1 整体结构2.2.2 超表2.2.3 自动分区2.2.4 数据写入与查询优化2.2.5 数据保留策略2.2.6 更多特性 0.简介 现今时序数据库的应用场景十分广泛,其通过保留时间…...
Flask Web开发的重要概念和示例
一口气列举Flask Web应用的所有概念和示例 Flask Web 应用基本框架 路由(Routing) 模版(Template) request 对象 JSON 数据处理 redirect 示例 文件上传示例 文件下载示例 Session 示例 Cookie操作 Flask Web 应用基本框架 这是一个 最基础的 Flask Web 应用,…...
使用pocketpal-ai在手机上搭建本地AI聊天环境
1、下载安装pocketpal-ai 安装github的release APK 2、安装大模型 搜索并下载模型,没找到deepseek官方的,因为海外的开发者上传了一堆乱七八糟的deepseek qwen模型,导致根本找不到官方上传的……deepseek一开源他们觉得自己又行了。 点击之…...
后台终端方法
使用tmux实现终端后台运行 首先,在Linux系统上安装tmux sudo apt install tmux使用方法: 创建终端 #直接创建 tmux #自定义名称 tmux new -s {name}退出tmux终端:Ctrlb 之后 d 退出后查看后台终端: tmux ls abc: 1 windows (cr…...
为什么vue3需要对引入的组件使用markRaw?
在Vue 3中,对引入的组件使用markRaw的主要原因是为了避免Vue的响应式系统对该组件实例进行不必要的代理和追踪。Vue 3的响应式系统是基于Proxy实现的,它会对数据进行代理以追踪其变化,并在数据变化时自动更新视图。然而,在某些情况…...
AWS上基于Llama 3模型检测Amazon Redshift里文本数据的语法和语义错误的设计方案
一、技术栈选型 核心服务: Amazon Redshift:存储原始文本和检测结果Amazon Bedrock:托管Llama 3 70B模型AWS Lambda:无服务计算(Python运行时)Amazon S3:中间数据存储AWS Step Functions&…...
深度学习-114-大语言模型应用之提示词指南实例DeepSeek使用手册(三)
文章目录 1 提示词指南1.1 生成模型提示词1.2 角色扮演1.3 文案大纲生成1.4 情景续写1.5 宣传标语生成1.6 中英翻译专家1.7 诗歌创作1.8 结构化输出1.9 内容分类1.10 散文写作1.11 代码生成1.12 代码改写1.13 代码解释2 不同类型的提示词2.1 营销推广类(5个)2.2 内容创作类(24个…...
Springboot_实战
项目开发 lombok使用 自动为实体类提供get、set、toString方法 引入依赖 实体类上添加注解 统一响应结果 注意要写get、set方法;下面是错误的,因此要加上Data注解 一个注册的接口的示例 Controller层 Service层 Mapper层 参数校验 但是同样存在一…...
【第5章:深度生成模型— 5.4 深度生成模型前沿全景:从Diffusion到多模态,揭秘AI生成技术的未来】
生成模型正在经历一场前所未有的革命!从震惊AI圈的DALLE 2到刷屏朋友圈的Stable Diffusion,这些模型展现出的创造力已经突破了我们的想象边界。今天,我们就来一场深度探索之旅,揭开生成模型最前沿研究的神秘面纱,看看AI生成技术的未来会走向何方。 (本文包含大量前沿技术…...
【微服务学习二】nacos服务发现与负载均衡
nacos服务发现 想要开启服务发现,需要在main函数上添加 EnableDiscoveryClient 注解 然后我们编写一个controller类来查询nacos中注册的所有微服务以及对应的ip端口号 Controller public class DiscoveryController {AutowiredDiscoveryClient discoveryClient;//…...
信息安全管理(3):网络安全
1 网络的定义和特征 1.1 网络的定义 (根本懒得说。。你们自己wiki吧) 网络的用处 What is a network…Devices in a network…LAN, WAN and InternetworksWhat do networks do for you… Sharing resourcesUse/share applications 1.2 网络的特征 C…...
如何设置linux系统时间?
在 Linux 系统中,可以通过不同的方法来设置系统时间,下面详细介绍几种常见的方式。 目录 方法一:使用date命令手动设置时间 方法二:同步硬件时钟(BIOS 时钟) 方法三:使用timedatectl命令设置…...
ceph部署-14版本(nautilus)-使用ceph-ansible部署实验记录
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、环境信息二、部署步骤2.1 基础环境准备2.2 各节点docker环境安装2.3 搭建互信集群2.4 下载ceph-ansible 三、配置部署文件3.1 使用本地docker3.2 配置hosts…...
几款C#开发的入门书籍与视频教程
以下是几本适合C#初学者的书籍和一些优质的视频教程推荐,帮助你快速入门C#开发: 书籍推荐 1. 《C#入门经典》 • 作者:Karli Watson, Christian Nagel 等 • 特点:经典的C#入门书籍,内容全面,从基础语法到…...
XZ_Mac电脑上本地化部署DeepSeek的详细步骤
根据您的需求,以下是Mac电脑上本地化部署DeepSeek的详细步骤: 一、下载并安装Ollama 访问Ollama官网: 打开浏览器,访问 Ollama官网。 下载Ollama: 在官网中找到并点击“Download”按钮,选择适合Mac系统的…...
el-input输入框样式修改
el-input输入框样式修改 目的:蓝色边框去掉、右下角黑色去掉(可能看不清楚) 之前我试过deep不行 最有效的办法就是就是在底部添加一下css文件 代码中针对input的type为textarea,对于非textarea,只需将下面的css样式中的textarea替换成input…...
Promise的三种状态
目录 代码示例 HTML JavaScript 代码: 代码解释 总结 在 JavaScript 中,Promise 是一种异步编程的解决方案,它用于表示异步操作的最终完成(或失败)及其结果值。Promise 主要有三种状态: Pending&#…...
探秘AES加密算法:多种Transformation全解析
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
Python深度学习代做目标检测NLP计算机视觉强化学习
了解您的需求,您似乎在寻找关于Python深度学习领域的代做服务,特别是在目标检测、自然语言处理(NLP)、计算机视觉以及强化学习方面。以下是一些关于这些领域的概述以及寻找相关服务的建议。 1. Python深度学习代做概述 目标检测&…...
10款视频无损压缩软件介绍(deepseek汇总)
在如今这个视频创作与分享盛行的时代,大家时常面临视频文件过大、占空间多、传输不便的困扰。无损压缩软件就能帮上大忙,既能缩减视频体积,又能保证画质不受损。下面就给大家详细介绍 10 款好用的视频无损压缩软件。 视频无损压缩工具一&…...
rv1103b编译opencv
opencv-3.4.16,png的neon会报错,如果想开可以参考 https://blog.csdn.net/m0_60827485/article/details/137561429 rm -rf build mkdir build cd build cmake -DCMAKE_BUILD_TYPERELEASE \ -DCMAKE_C_COMPILERxxx/arm-rockchip831-linux-uclibcgnueabih…...
细胞计数专题 | LUNA-FX7™新自动对焦算法提高极低细胞浓度下的细胞计数准确性
现代细胞计数仪采用自动化方法,在特定浓度范围内进行细胞计数。其上限受限于在高浓度条件下准确区分细胞边界的能力,而相机视野等因素则决定了下限。在图像中仅包含少量可识别细胞或特征的情况下,自动对焦可能会失效,从而影响细胞…...
C++ 中的继承与派生
在 C 中,继承与派生是面向对象编程的重要特性,它们允许创建新类(派生类)来复用现有类(基类)的属性和方法,同时还能添加新的功能或修改现有功能,下面为你详细介绍。 基本概念 继承&…...
数据结构:哈夫曼树
1.概念 哈夫曼树(Huffman Tree)是一种用于数据压缩的二叉树,由大卫哈夫曼(David A. Huffman)于1952年提出。它通过构建最优二叉树来实现数据的高效压缩,广泛应用于文件压缩、图像压缩等领域。 哈夫曼树的…...
2025年 Java 面试八股文
第一章-Java基础篇 1. Java中的基本数据类型有哪些?⭐ Java中有8种基本数据类型(Primitive Types),分别是: byte:8位,-128 ~ 127short:16位,-32,768 ~ 32,767int&…...
Linux 内核 IPoIB 驱动中 sysfs 属性冲突问题的分析与解决
一、引言 在 Linux 内核的设备驱动开发中,sysfs 文件系统是一种重要的机制,用于向用户空间暴露内核对象的属性信息。通过 sysfs,用户空间程序可以读取或修改设备的属性,从而实现对硬件设备的监控和配置。然而,在实际开发中,可能会遇到 sysfs 属性冲突的问题,特别是在复…...
深度学习框架探秘|TensorFlow vs PyTorch:AI 框架的巅峰对决
在深度学习框架中,TensorFlow 和 PyTorch 无疑是两大明星框架。前面两篇文章我们分别介绍了 TensorFlow(点击查看) 和 PyTorch(点击查看)。它们引领着 AI 开发的潮流,吸引着无数开发者投身其中。但这两大框…...
鸿蒙Harmony-UIAbility内状态-LocalStorage详细介绍
鸿蒙Harmony-UIAbility内状态-LocalStorage详细介绍 1.1 Localstorage的概念 LocalStorage是页面级的UI状态存储,通过Entry装饰器接收的参数可以在页面内共享同一个LocalStorage实例,LocalStorage也可以在UIAbility内,页面间共享状态 1.2 Lo…...
Mysql中使用sql语句生成雪花算法Id
🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…...
android的第一个app项目(java版)
一.学习java重要概念 java的基本类型的语言方法和C语言很像,这都是我们要学的东西和学过的东西。那些基础东西,就不和大家讨论了,一起看一下java的一些知识架构。 1.封装 封装是面向对象编程中的一个核心概念,它涉及到将数据和操…...
第6章 6.2使用ASP.NET Core 开发WebAPI ASP.NET Core Web API
6.2.1 Web API项目的搭建 进入VS,【创建新项目】,选择【ASP.NET Core Web API】模板,【下一步】,编辑项目名称及项目位置,【下一步】,选择框架,其他选项默认即可,【创建】。 进入项…...
常见的网络协议汇总(涵盖了不同的网络层次)
网络层协议 IP协议:IP指网际互连协议(Internet Protocol),是TCP/IP体系中的网络层协议。IP协议包括IPv4和IPv6,用于为数据包提供源地址和目标地址,从而实现网络通信。ICMP协议:ICMP(…...
【Java 面试 八股文】Redis篇
Redis 1. 什么是缓存穿透?怎么解决?2. 你能介绍一下布隆过滤器吗?3. 什么是缓存击穿?怎么解决?4. 什么是缓存雪崩?怎么解决?5. redis做为缓存,mysql的数据如何与redis进行同步呢&…...
嵌入式EasyRTC实时通话支持海思hi3516cv610,编译器arm-v01c02-linux-musleabi-gcc
EasyRTC已经完美支持海思hi3516cv610,编译器arm-v01c02-linux-musleabi-gcc,总体SDK大小控制在680K以内(预计还能压缩100K上下): EasyRTC在hi3516cv610芯片上能双向通话、发送文字以及二进制指令,总体运行…...
自然语言处理NLP入门 -- 第四节文本分类
目标 本章的目标是帮助你理解文本分类的基本概念,并通过具体示例学习如何使用 scikit-learn 训练文本分类模型,以及如何利用 OpenAI API 进行文本分类。 5.1 什么是文本分类? 文本分类(Text Classification)是自然语…...