总字符数: 18.08K
代码: 8.98K, 文本: 4.97K
预计阅读时间: 1.01 小时
一、PHP 语法
php是什么
PHP(全称:Hypertext Preprocessor)是一种开源的脚本语言,通常用于服务器端编程和网页开发.PHP代码在服务器上执行,并且生成动态的网页内容.
以下是 PHP 的一些特点:
- 易于学习和使用:PHP 的语法简单易懂,学习门槛相对较低,适合初学者入门.
- 跨平台性:PHP 可以在多个操作系统上运行,包括 Windows、Linux、Mac 等.
- 与 HTML 集成:PHP 可以嵌入到 HTML 代码中,方便动态生成网页内容.
- 广泛应用:PHP 是一种非常流行的服务器端脚本语言,广泛用于开发动态网站、Web 应用程序和网站后端逻辑.
- 强大的功能:PHP 提供了许多内置函数和库,使开发者能够轻松处理字符串、数据库连接、文件处理、图像处理等各种任务.
- 它是开源的:PHP 被许多开发者积极参与开发和维护,有庞大的社区支持,可以获取到丰富的资源和扩展.
PHP 在互联网领域有着广泛的应用,许多知名的网站和应用程序都使用 PHP 构建,如Facebook、Wikipedia、WordPress等.
总之,PHP 是一种功能强大且广泛使用的服务器端脚本语言,适合用于开发各种类型的动态网页和Web应用程序.
PHP 代码的起始和结束标记
PHP 脚本可放置于文档中的任何位置,以<?php
开头,以?>
结尾,整个粗体部分以php语言进行解析:
1 |
|
PHP 文件的默认文件扩展名是 .php
(文件后缀),PHP文件通常包含 HTML 标签以及一些 PHP 脚本代码,通常的是PHP代码穿插到html文档里.
如下是PHP和HTML结合使用,利用内建PHP函数echo
在页面上输出Hello PHP !!!!
创建的2.php文件
1 | <!DOCTYPE html> |
PHP中注释
PHP 代码中的注释不会被解析执行,只能来读取和执行.大部分用于程序开发的时候,编辑者对代码的简要标记.
PHP有三种注释:
1 | 1. # 单行注释 |
如下三种注释:
1 | // echo "php 66666" |
- 单引号不能解析变量,双引号可以解析变量
- 双引号执行转译字符,单引号不转译
\n \r \t
- 它执行转译\和’(输出一个)
- 能使用单引号就不使用双引号,为什么?因为单引号效率要比双引号快
- 如果是字符串和变量一起的时候用.来链接
- 双引号里面插入单引号,单引号里面插入变量,变量会解析
- 如果双引号里面插入变量的时候请在后面加上空格或者
,
号,不然计算机会认为你是一体的或者用大括号包起来当变量和字符串想在一起的时候用"点"来拼接 - 引号方式:比较适合定义那些比较短(不超过一行)或者没有结构要求的字符串
- 如果有结构要求,或者内容超过一行,可以使用以下两种结构定义
nowdoc
字符串:没有单引号的单引号字符串heredoc
字符串:没有双引号的双引号字符串
结构化定义字符串变量的规则:
结构化定义字符串对应的边界符有条件
上边界符后面不能跟任何内容
下边界符必须顶格,最左边
下边界符同样后面只能跟分号;不能跟任何内容
结构化定义字符串的内部(边界符之间)的所有内容都是字符串本身
PHP 大小写敏感
在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo
等等)都对大小写不敏感,使用ECHO ,echo,EcHo
都可以进行输出.
1 |
|
所有变量都对大小写敏感,而当一个变量$a=2
被赋值后,echo $A,echo $a
1 |
|
二、PHP 变量
在PHP中,变量是存储信息的容器.
判断一个变量是否存在isset($x);
销毁变量unset($x);
1
2
3
4
5 $a = 10;
var_dump(isset($a));
unset($a);
echo "</br>";
var_dump(isset($a));
PHP 变量规则
- PHP中变量必须以
$
符号开头,其后是变量的名称 - 变量名称必须以字母或下划线开头,不能以数字开头
- 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
- 变量名称对大小写敏感(
$y
与$Y
是两个不同的变量)
创建变量
PHP 没有创建变量的命令.
变量会在首次为其赋值时被创建:
1 |
|
PHP作为一门类型松散的语言,我们在创建变量的时候,不必告知PHP变量的数据类型,由于PHP会根据它的值,自动把变量转换为正确的数据类型,而其他编程语言,如C和C++以及Java等语言,在使用变量之前,需要声明变量的名称和类型.
PHP 变量作用域
就是一个变量的作用范围,或者叫做生命周期
内部变量:
Local
- 就是函数体内声明的变量,内部变量的作用域只在函数体内生效,程序执行完事以后自动销毁(垃圾回收机制)
外部变量:
Global
- 外部变量就是在函数体外声明的变量,不能在函数体内使用,函数体外的变量名字可以与函数体内的变量名字一样
超全局变量
- 外部变量和内部变量是同一个变量
$_GET
$_POST
$_FILE
$_COOKIE
$_SESSION
$GLOBALS
静态变量
static
静态变量关键字在函数内部定义的变量,用来实现跨函数共享数据的变量
这个变量只会初始化一次在运行的时候他会记录上一次的值
static
变量不会销毁
1
2
3
4 function 函数名(){
//定义变量
static $变量名 = 值; //通常会在定义的时候就直接赋值
}
Local 和 Global 作用域
下面的例子测试了带有局部和全局作用域的变量
1 |
|
global 关键字
global 关键字用于函数内访问全局变量.
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字
1 |
|
static 关键词
当函数完成执行后,会删除所有变量.若有时我们不想要删除某个局部变量.则需要在首次声明变量时使用 static 关键词:
1 |
|
三、echo 、print以及var_dump 语句
echo
:用法:
echo expression;
echo
是一个语言结构而不是函数,因此可以省略括号.它可以输出一个或多个字符串.echo
没有返回值,只用于输出内容到浏览器或命令行.echo
输出的内容可以包含任何有效的表达式,包括字符串、变量和表达式的组合.echo
和echo()
是一样的示例:
1
2
3
4
5
6
$name = "Alice";
echo "Hello, " . $name . "!"; // 输出:Hello, Alice!
echo "</br>";
echo($name);
echo "</br>";
print
:用法:
print expression;
print
是一个函数,必须使用括号将表达式括起来.print
的功能与echo
类似,可以输出一个字符串.print
的返回值为 1,可以用于某些特定的需求.示例:
1
2
3
4
$name = "Bob";
print("Welcome, " . $name); // 输出:Welcome, Bob
print $name;
var_dump
:用法:
var_dump(expression);
var_dump
是一个函数,用于获取并输出变量的详细信息.var_dump
输出变量的类型、值以及长度(针对字符串)等详细信息.var_dump
在调试过程中非常有用,可以帮助开发者了解变量的结构和内容.示例:
1
2
3
4
5
6
7
$name = "Charlie";
$age = 25;
var_dump($name, $age);
// 输出:
// string(7) "Charlie"
// int(25)
总结:
echo
和print
常用于输出字符串和变量,可以输出多个值,echo
是语言结构而print
是函数.var_dump
则用于获取并输出变量的详细信息,更适合用于调试过程.
四、PHP 数据类型
PHP一种支持八种原始数据类型
四种标量类型,即integer
(整型)、float/double
(浮点型)、string
(字符串型)和boolean
(布尔型)
boolean(布尔型) | 有两个值,真(true)和假(false) |
---|---|
string(字符串型) | 计算机所能表示的一切字符的集合 |
integer(整型) | 只能是整数,包括正数和负数 |
float(浮点型) | 和整数不同,包含小数位 |
两种复合类型,即array
(数组)、object
(对象)
object(对象) | 类的实例,使用new来创建 |
---|---|
array(数组) | 一组类型相同的变量集合 |
两种特殊类型,即resource
(资源)、NULL
(空)
resource(资源) | 特殊的变量,保存了到外部资源的一个引用,通过专门的函数来建立和使用 |
---|---|
null(空值) | 表示变量没有值,唯一的值是NULL |
1. 字符串(string)
字符串是字符序列,可以是以引号内的任何文本,单双引号的使用有区别:
单引号:单引号里出现的变量会原样输出,PHP引擎不会对它进行解析,因此单引号定义字符串效率最高.
双引号:双引号所包含的变量会自动被替换成变量值.
反引号”``”:通常用于执行操作系统命令或外部程序,并获取其输出.
如下例子:
1 |
|
2. 整型(integer)
整型数据只能包含整数.
整型数据的特征:
- 必须至少有一个数字(0-9)
- 不能包含逗号或者空格
- 没有小数点
- 可以是正数也可以是负数
整形数据可以用三种常见格式来指定:
- 十进制
- 十六进制(0x为前缀)
- 八进制(0为前缀)
1 |
|
1 | <?php |
1 |
|
3. 浮点型(float/double)
浮点数是有小数点或指数形式的数字.
如下例子,测试不同数字:
1 |
|
4. 布尔型(boolean)
布尔值概念:
- 只保存两个值:true值和false值;
- 值不区分大小写,即true=TRUE,false=FALSE;
- 设定一个布尔型的变量,只需将true值或者false值直接赋值给变量;
1 |
|
5. 数组(array)
数组(Array)
- 数组是一系列相关数据的集合,以某种特定的方式进行排列,形成一个整体
- 可以是相同的数据类型,也可以是不同的数据类型
- 在PHP里数组的索引可以是数字,也可以是字符串
1 |
|
6. 对象(object)
object(对象),面向对象编程在PHP中非常重要,
特点:封装,多态,继承.
对象是存储数据和有关如何处理数据的信息的数据类型.
在 PHP 中,必须明确地声明对象.
首先我们必须声明对象的类,对此,我们使用 class 关键词,类是包含属性和方法的结构.
1 |
|
7. NULL 值
PHP中一种特殊的数据类型,表示空值,即表示没有为该变量设置任何值null(空值)
不区分大小写,null
和NULL
是一样的.
被赋空值可能有三种情况:没有赋什么值、被赋空值null
、被unset()
函数处理过的变量.
1 |
|
8. 资源(Resource)
- 资源是一种特殊的变量类型,它保存着对外部数据源的引用,如文件、数据库连接等,直到通信结束.
- 数据库持久连接是一种比较特殊的资源,它不会被垃圾回收系统释放,需要手动释放.
五、PHP 常量
PHP常量是一个简单值的标识符,该值在脚本中不能改变;常量值被定义后,在脚本的其他任何地方都不能被改变.一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现. (常量名不需要加$
修饰符).
设置 PHP 常量
设置常量,使用 define()
函数
1 | define (string $name , mixed $value [, bool $case_insensitive = false ] ) : bool |
以下例子我们创建一个区分大小写的常量, 常量值为 欢迎来到我的世界
1 |
|
以下例子我们创建一个不区分大小写的常量, 常量值为 欢迎来到我的世界
1 |
|
另一种定义常量的方法:
1 |
|
常量是全局的
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用.
如下是在函数外定义常量,在函数内使用常量
1 |
|
注意事项
- 不能重复定义
- 常量的名字一般使用大写字母
- 常量的值只能是标量
- 常量的作用域是全局的
- 输出的时候没有
$
符号 - 常量不能写到字符串中
系统常量
1 |
|
六、PHP 字符串
PHP中的字符串是一种常见的数据类型,用于表示和操作文本数据.字符串可以包含字母、数字、符号以及其他特殊字符.您可以使用引号(单引号或双引号)来创建字符串.
1 |
|
字符串常用函数和运算符
连接运算符(并置运算符)
使用并置运算符.
可以将两个字符串连接在一起
1 |
|
字符串常用函数
1 |
|
七、PHP 条件语句
在日常程序编程时,我们需要不同的判断执行不同的动作,此时我们就可以用到条件语句来实现.
在 PHP 中,提供了下列条件语句:
- if 语句 - 在条件成立时执行代码
- if…else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
- if…elseif…else 语句 - 在若干条件之一成立时执行一个代码块
- switch 语句 - 在若干条件之一成立时执行一个代码块
时间复杂度
这两种语句的时间复杂度主要受到条件的数量和嵌套程度的影响.
通常情况下,它们的时间复杂度都是O(1),因为它们的执行时间不随输入数据的增加而增加.
在实际使用中,更重要的是选择合适的条件语句以保持代码的可读性和可维护性.
运算符
运算符
算术运算法
+ - * / %(求模又称取余数)
自增自减运算符
++ --
比较运算符
< >= <= == === != !==
==
只判断值而不比较数据的类型===
比较值和类型
逻辑运算符
&&
逻辑与 并且有一个为假就是假多个为假的还是假只有同时为真的时候才是真||
逻辑或 或者只要有一个为真就是真多个同时为假才是假的!
取反 就是假变成真的真的变成假的
1 |
|
为false几种情况
- 整型的
0
在进行判断的时候为假,整型的1
在判断的时候为真 - 如果浮点的
0.0000000
都是假的只要后面有一个是非零的数字即为真 - 空字符串为假如果中间有一个字符都是真那怕是一个空格
- 空字符串的
0
即为假其他皆为真 - 空数组为假
null
作为判断条件的时候是假的
if 语句
if 语句用于仅当指定条件成立时执行代码.
1 | # 语法: |
如下例子,当分数grade大于等于60时,输出”及格”:
1 |
|
if…else 语句
在条件成立时执行一块代码,条件不成立时执行另一块代码
语法:
1 | if (*条件*) |
如下例子,当分数大于等于60,输出”及格”,否则输出”不及格”:
1 |
|
if…elseif…else 语句
在若干条件之一成立时执行一个代码块
请使用 if…elseif…else 语句..
语法:
1 | if (条件) |
如下例子,当分数大于等于80,输出”优秀”,大于等于60输出”及格”,小于60输出”不及格”:
1 |
|
Switch 语句
当你需要根据不同的条件执行不同的代码块时,PHP中的
switch
语句是一个非常有用的工具.它提供了一种在多个选项之间进行选择的结构,可以减少大量的if-else
嵌套.
switch
语句由一个表达式和一系列case
分支组成.表达式的值将与每个case
分支的值进行比较,找到匹配的分支后,执行相应的代码块.如果没有任何匹配的分支,还可以选择执行一个可选的default
分支.
1 | switch (expression) { |
Switch 语句判断成绩例子:
1 |
|