PHP基础部分学习笔记整理[01]

本文是PHP学习笔记,涵盖了PHP的基础语法,包括变量、常量、数据类型、运算符、错误处理和文件加载。还介绍了字符串的使用、系统函数以及自定义错误处理。特别强调了错误处理中的错误分类和自定义错误处理机制,帮助初学者掌握PHP编程的核心概念。
摘要由CSDN通过智能技术生成

1. PHP 基础

PHP 语法初步

  • PHP是一种运行在服务器端的脚本语言,可以嵌入到HTML中。

PHP 代码标记

  • 在PHP历史发展中,可以使用多种标记来区分 PHP 版本
  1. ASP标记 <% php代码 %>
  2. 短标记 <? php代码 ?>
  3. 脚本标记 <script language="php"> php代码 </script>
  4. 标准标记 <?php php代码 ?>

PHP 注释

  • php中的注释分为两种:行注释和块注释
  1. 行注释:
    • // : 后面跟的内容都是注释
    • # : 与//相同
  2. 块注释:
    • /* 中间全部都是注释 */

PHP 语句分隔符

;

2. PHP 变量

  • 声明变量

$a = 1;

  • 删除变量

unset($a);

PHP 预定义变量

  • 预定义变量:提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)
  1. $_GET : 获取所有表单以GET方式提交的数据
  2. $_POST : POST提交的数据
  3. $_REQUEST : GET和POST提交的
  4. $GLOBALS : PHP中所有的全局变量
  5. $_SERVER : 服务器信息
  6. $_SESSION : session会话数据
  7. $_COOKIE : cookie会话数据
  8. $_ENV : 环境信息
  9. $_FILE : 用户上传的文件信息

PHP 可变变量

  • 可变变量:如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到另外一个变量的值,在变量前多加一个$
$a = "bb";
$bb = "123456";
echo $$a;	// 123456

变量传值

  • 值传递
$a = 10;
$b = $a;
$b = 5;
echo $a, $b; // 10 5
  • 引用传递
$c = 10;
$d = &$c;
$c = 5;
echo $c, $d;	// 5 5

3. PHP常量

  • 常量:const/constant 是一种在程序运行当中,不可改变的量(数据)
  • 常量一旦定义,通常数据不可改变(用户级别)

常量定义形式

  • 在PHP中常量有两种定义方式(5.3之后才有两种)
  1. 使用定义常量的函数: define(‘常量名’,常量值);
  2. 5.3之后才有的 const 常量名 = 值;
  • 常量名的命名规则
  1. 常量名不需要使用 $ 符号,一旦使用系统认为为变量
  2. 大写字母为主(与变量以示区别)
  • 注意细节
  1. Define 和 const 定义的常量是有区别:在于访问权限区别
  2. 定义常量通常不区分大小写,但是可以区分,可以参照define函数的第三个参数

define(‘变量名’,值,[区分大小写 boolean])

常量使用方式

echo PI;

  • 有时候还需要使用另外一种形式来访问(针对的是特殊名字的常量)需要用到另外一个访问常量的函数:

echo constant(‘常量名’)

系统常量

  • 系统常量:系统帮助用户定义的常量,用户可以直接使用

  • 常用的几个系统常量

  1. PHP_VERSION : PHP版本号
  2. PHP_INT_SIZE : 整形大小
  3. PHP_INT_MAX : 整形能表示的最大值
  • 特殊常量 魔术常量 随环境变化
  1. __DIR__ : 当前被执行脚本所在电脑的绝对路径
  2. __FILE__ : 当前被执行脚本所在电脑的绝对路径(带自己文件名字)
  3. __LINE__ : 当前所属的行数
  4. __NAMESPACE__ : 当前所属的命名空间
  5. __CLASS__ : 当前所属的类
  6. __METHOD__ : 当前所属的方法

4. 数据类型

  • 数据类型:data type,在PHP中指的是存储的数据本身的类型,而不是变量的类型,PHP是一种弱类型语言,变量变量本身没有数据类型。

  • (简单)基本数据类型

  1. 整型 int/integer 系统分配4个字节存储,表示整数类型(有前提)
  2. 浮点型 float/double 系统分配8个字节存储,表示小数或整型存不下的整数
  3. 字符串型 string 系统根据实际长度分配,表示字符串(引号)
  4. 布尔类型 bool/boolean 表示布尔类型,只有两个值 true 和 false
  • 复合数据类型
  1. 对象类型 object 存放对象
  2. 数据类型 array 存储多个数据(一次性)
  • 特殊数据类型
  1. 资源类型 resource 存放资源数据(PHP外部数据,如数据库、文件)
  2. 空类型 NULL 只有一个值就是NULL(不能运算)

类型转换

  1. 自动转换:系统根据需求自己判定,自己转换 (用的比较多,效率低)
  2. 强制(手动)转换:认为根据需要的目标类型转换
  • 在转换过程中,用的比较多的是转布尔类型(判断)和转数值类型(算术运算)
  1. 布尔 true 为 1,false 为 0
  2. 字符串转数值有自己的规则
  • 以字母开头的字符串,永远为0
  • 以数字开头的字符串,取到碰到字符串位置(不会同时包含两个小数点)

类型判断

  • 通过一组类型判断函数,来判断变量,返回这个变量所保存数据的数据类型 : 是一组以is_开头后面跟着类型名字的函数。

is_XXX(变量名)

  • Bool类型不能用 echo 来查看,可以使用var_dump结构来查看

var_dump(变量1,变量2…)

  • 还有一组函数可以用来获取以及设定数据(变量)的类型
  1. Gettype(变量名) : 获取类型,得到的是该类型对应的字符串
  2. Settype(变量名,类型) : 设定数据类型,与强制转换不同
  • 强制转换(类型)变量名,是对数据复制的内容弄进行处理(不会实际改变)
  • settype 会直接改变数据本身

5. PHP 运算符

连接运算符

  • 连接运算,是PHP将多个字符串拼接的一种符号
  • . 将两个字符串连接到一起
  • .= 复合运算,将左边的内容弄与右边的内容连接起来,然后重新复制给左边变量

a.= $b == a = a.b

错误抑制符

  • 在php中有一些错误可以提前预知,但是这些错误无法避免,但又不希望报错给用户看,可以使用错误抑制符处理。

  • @ : 在可能出错的表达式前面使用

$a = 10;
$b = 0;
@($a % $b)
  • 通常在生产环境(上线)会用到,在开发的时候不会用,系统本身最好没有任何错误

6. PHP 常用系统函数

有关输出的函数

  • print() 类似echo输出提供的内容,本质是一种结果(不是函数),返回1,可以不需要使用括号
  • print_r() 类似于vat_dump,但是比var_dump简单,不会输出数据的类型,只会输出值(数组打印使用比较多)

有关时间的函数

  • date() : 按照指定格式对对应的时间戳(从1970年格林威治时间开始计算的秒数),如果没有指定特定的时间戳。那么就是解释当前时间
  • time() : 获取当前时间对应的时间戳
  • microtime() : 获取微秒级别的时间
  • Strtotime() : 按照规定的字符串转换成时间戳

7. 文件加载

文件加载含义

  • 将一个文件包含到当前文件中,成为当前文件运行过程中的一部分。
  • 同样将一些公共的代码,在多个页面都需要用到的时候,会做成一个独立的文件。
  • 然后在不同的页面需要用到的时候,直接载入进来就可以了

文件加载语法

include “要载入的文件路径”;

  • 可以载入php,也可以载入html

文件加载的四种方式

  • include '' : 每次都载入文件(可能会重复载入),如果载入失败,在报错后继续执行后续语句

  • include_once '' : 只载入一次(不会重复载入),如果载入失败,在报错后继续执行后续语句

  • require '' : 每次都载入文件(可能会重复载入),如果载入失败,在报错后终止程序

  • require_once '' : 只载入一次(不会重复载入),如果载入失败,在报错后终止程序

  • 一般来说,如果被载入的文件内容,是后续代码运行的必备前提,则应该使用 require 载入

  • 如果被载入的文件内容,只需要或仅允许出现一次,则应该使用 xxxx_once载入

  • 获取物理路径(绝对路径)的方式

    • __DIR__ 表示当前文件所在路径,由他可以构建出绝对路径
    • getced() 表示当前正访问的网页路径,由他也可以构建出绝对路径

8. 错误处理

错误分类

  1. 语法错误
    • 程序不能运行,是在运行之前,检查语法的时候,就发现语法出错,结果是提示错误,不运行程序
  2. 运行时错误
    • 语法检查没错,然后开始运行,在运行中出现了错误报错
    • 常见错误
  3. 逻辑错误
    • 程序能运行,且一直到结束没有报错,但执行得到的结果却是错的

常见错误代号

  • E_NOTICE 提示性错误 轻微;错误发生后,后面的程序继续执行

  • E_WARNING 警告性错误 稍微严;错误发生后,后面的程序继续执行

  • E_ERROR 严重错误/致命错误;错误发生后,后面的程序不再执行

  • E_PARSE 语法错误(语法解析错误);语法解释错误,直接不运行程序

  • E_USER_NOTICE 用户自定义的提示错误

  • E_USER_WARNING 用户自定义的警告错误

  • E_USER_ERROR 用户自定义的严重错误

  • E_ALL 它是一个代表’所有’错误的代号

  • 说明

  1. 这些错误代号,其实只是系统预先设定的一些常量,他们的值大约是1,2,4,8,16
  2. 这些错误带哈,通常只是用于对错误控制时进行“设置”使用
  3. 他们是一系列的整数,并具有一定规律 1 2 4 8 16 32 64
  4. 可以在 php.ini 中设置他们

错误触发

  1. 程序本身有错,则运行时就会触发错误(并提示)
  2. 程序本身没错,但出现了不符合预计的情形(比如数据不符合要求)
    • 此时程序员可以主动触发一个错误,也可以说主动创建一个错误
    • 这就是用户错误 包括
    • E_USER_NOTICE
    • E_USER_WARNING
    • E_USER_ERROR
  • 自定义错误触发语法:

trigger_error(“自定义错误提示内容”, 自定义错误的代号E_USER_NOTICE等);

错误显示设置

  • 如果有错误发生,默认情况下会被显示在页面。
  • 我们可以对此进设置,以决定以下两点:
  1. 设置 display_errors 以决定是否显示错误
    • 在php.ini中设置 display_errors = On 或 Off
    • 在这里设置,影响所有使用该php语言引擎的代码
    • 在php文件中设置 ini_set('display_errors',1或0); //1显示0不显示
    • 在这里设置只影响当前网页代码本身
  2. 设置 error_reporting 以决定显示哪些错误
    • 在php.ini中设置 error_reporting=错误代号1|错误代号2|E_ERROR等 // 要显示的就写出来,或者E_ALL所有
    • 在php文件中,道理类似 ini_set('error_reporting',错误代号1|错误代号2|...)

错误日志设置

  • 如果有错误发生,默认情况下不会将错误信息记录保存下来
  • 我们可以对此进设置,以决定以下两点:
  1. 设置 log_errors 以决定是否记录错误
    • php.ini 中设置: log_errors = OnOff
    • 代码文件中设置: ini_set('log_errors',1或0)
  2. 设置 error_log 以决定记录到哪里
    • 通常,就设置为一个文件名,php系统会在网站的每个文件夹下都建立该文件,并记录错误
    • php.ini 中 error_log = error.txt //纯文本
    • 代码中 ini_set("error_log",'error.txt')

自定义错误处理(重点)

  • 之前,我们面对的情形都是错误发生的时候,系统生成错误,并处理错误(给出错误信息)。我们能控制的就是:是否显示、显示什么、是否记录、记录到哪里

  • 实际上,我们也可以更进一步控制错误信息,以决定错误发生的时候,显示什么样的错误信息,这就是自定义错误处理

  • 具体做法分两步

  1. 声明错误发生时,由我们自己来处理————设定一个错误处理的函数名
  2. 定义该函数,在函数中详细设定错误的处理情况,怎么显示,显示什么,怎么记录,记录什么
  • 参数解释
  1. errCode 错误代号
  2. errMsg 错误信息
  3. errFile 错误文件
  4. errLine 错误行号
  • 形参顺序固定,而且是由系统调用该函数并传入实参数据
  • 自定义错误只能处理 “非致命错误” (非E_ERROR)
set_error_handler("my_error_handler");	// 此行在错误以上

function my_error_handler($errCode, $errMsg, $errFile, $errLine){
		...
}

9. 字符串详解

  • 四种不同形式字符串

单引号字符串

  • 形式: $s1 = ‘字符串’;

  • 特点:

    • 只能使用 2 个转义符 \ 代表一个反斜杠 ’ 代表一个单引号
  • 通常如果没有特殊需求,比如字符串中使用一些转义符,以及一些变量,则推荐使用单引号字符串

$str = ‘John’s phone is lost’;

双引号字符串

  • 形式: $s2 = “字符串”
  • 特点:
    • 能使用较为丰富的转义符,包括 \ " \n \r \t $ 等
    • \n 代表换行符
    • \r 代表回车符
    • \t 代表tab符
    • $ 代表"$"本身,因为双引号字符串中能识别解析变量,则如果不想要去解析,就用此转义

$v1 = 10;

手敲不易 点赞评论转发支持 谢谢大家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值