PHP 基础知识
后台-插件-广告管理-内容页头部广告(手机) |
目录
PHP基础 2
PHP代码标记 2
PHP注释 2
PHP语句分隔符 2
PHP变量 3
常量 3
数据类型 4
流程控制 6
文件 7
函数 9
闭包 11
常用系统函数 12
错误处理 13
错误显示设置 15
字符串类型 17
字符串相关函数 19
数组 21
遍历数组 22
数组的相关函数 25
PHP基础
PHP是一种运行在服务器端的脚本语言,可以嵌入到HTML中。
PHP代码标记
在PHP历史中,可以使用多种标记来区分PHP脚本。
ASP标记:<% php代码 %>
短标记:<? php代码 ?> 简短风格 SGML(标准通用标记语言)
以上两种基本弃用,如果想使用需要在配置文件中开启。(配置文件:php文件夹中的php.ini文件,搜索short_open_tag, asp_tags)
脚本标记:
标准标记(常用):<?php php代码 ?>
XML风格(可扩展标记语言)
PHP注释
行注释:一次注释一行
//:后面内容为注释
块注释:一次注释多行
/*:
中间内容全部都是注释
*/
PHP语句分隔符
PHP中,代码是以行为单位,一般以分号为行结束符。
特殊说明:
- PHP中标记结束符“?>”有自带语句结束符的效果,最后一行PHP可以没有语句结束符“;”。
- PHP中其实很多代码的书写并不是嵌入到HTML中,而是单独存在,通常书写习惯不建议使用标记结束符“?>”,PHP会自动从开始到最后全部认为是PHP代码,从而解析。
PHP变量
php是一种动态网站开发的脚本语言,动态语言特点是交互性,会有数据的传递,而PHP作为“中间人”,需要进行数据的传递,传递的前提就是PHP能自己存储数据(临时存储)。
定义变量:在PHP中不需要任何关键字定义变量(赋值);
PHP中所有变量都必须使用“$”符号。
PHP中允许使用中文变量(不建议)。
删除变量:使用unset(变量名)。
预定义变量
预定义变量:提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)。
$_GET:获取所有表单以get方式提交的数据
$_POST: :以post方式提交的数据
$_REQUEST:GET和POST提交的都保存
$GLOBALS:PHP中所有的全局变量
$_SERVER:服务器信息
$_SESSION: session会话数据
$_COOKIE: cookie会话信息
$_ENV:环境信息
$_FILES:用户上传的文件信息
可变变量:
$a = ‘b’;
$b=’bb’;
echo $a;//b
echo $$a;//bb—找到$a,解析结果:b,将前面的$符号与结果b绑定,:$b,然后解析。
变量传值:
值传递:$新变量 = $旧变量
引用传递:$新变量 = &$旧变量
常量
特点:数据不允许修改
常量只可以保存布尔值、整型、浮点型或字符串数据。
定义:
- 使用定义常量的函数:define(‘常量名’,常量值);
- PHP5.3之后才有:const 常量名 = 值;
命名规则:
- 常量不需要使用“$”符号,一旦使用系统就会认为是变量。
- 常量的名字组成由字母、数字和下划线组成,不能以数字开头。
- 常量的名字通常是以大写字母为主。
- 常量的命名规则比变量要松散,可以使用一些特殊字符,但只能使用define定义。
使用(访问):
- 普通常量:直接使用。
- 特殊常量:constant(‘常量名’);
系统常量:系统帮助用户定义的常量,用户可以直接使用。
运行phpinfo()函数,可看到PHP预定义的许多常量。
常用的系统常量:
PHP_VERSION: PHP版本号。
PHP_INT_SIZE:整型大小。
PHP_INT_MAX:整型能表示的最大值(PHP中整形允许出现负数:带符号)。
系统魔术常量:双下划线开始+常量名+双下划线结束。魔术常量的值通常会跟着环境变化,但是用户改变不了。
__DIR__:当前被执行的脚本所在电脑的绝对路径
__FILE__:当前被执行的脚本所在电脑的绝对路径(带自己文件的名字)
__LINE__:当前所属的行数
__NAMESPACE__:当前所属的命名空间
__CLASS__:当前所属的类
__METHOD__:当前所属的方法
数据类型
数据类型(data type)指的是存储的数据本身的类型,而不是变量的类型,PHP是一种弱类型语言,变量本身没有数据类型。
PHP八大数据类型:
PHP中将数据分为三大类,八小类。
简单(基本)数据类型 | 整型(int/integer) | 占4个字节 |
浮点型(float/double) | 占8个字节 | |
字符串(string) | 根据实际长度分配 | |
布尔类型(bool/boolean) | 只有true和false两种取值 | |
复合数据类型 | 对象类型(object) | 存放对象(面向对象) |
数组类型(array) | 存储多个数据(一次) | |
特殊数据类型 | 资源类型(resource) | 存放资源数据(PHP外部数据,如数据库、文件) |
空类型(NULL) | 值就是一个NULL,不能运算,对大小写不敏感。当被赋值为NULL,或者尚未被赋值,或者被unset(),变量都被认为为NULL | |
Callable类型 | 可以传递给其他函数的函数 |
类型转换:
当前数据类型—>目标数据类型
- 自动转换:系统根据需求自己判定。
- 强制(手动)转换:人为根据需要的目标类型转换。
强制转换规则:在变量之前加一个括号(),然后在里面写上目标数据类型。
NULL类型用到unset()
其他类型转布尔类型:true或者false。
其他类型转数值:
- 布尔true为1,false为0.
- 字符串转数值:
- 以字母开头的字符串,永远为0。
- 以数字开头的字符串,取到碰到字母为止,(不会同时包含两个小数点)。
类型判断:通过一组以is_类型名的函数来判断:is_XXX(变量名),返回结果为布尔类型(true/false)。Bool类型不能用echo来查看,可以使用var_dump结构查看。
var_dump(变量1,变量2,…)—会将数据类型和值同时打印。
empty():判断数据的值是否为“空”,不是NULL,为空则返回true。(判断变量的值)
isset():判断数据存储的变量本身是否存在,存在变量返回true。(判断变量是否存在)
获取和设定数据(变量)的类型:
gettype(变量名):获取类型,得到的是该类型对应的字符串。(不推荐使用来测试某种类型,推荐使用is_*函数代替)
settype(变量名,数据类型):设定数据类型,与强制转换不同。
- 强制类型转换,是对数据复制的内容进行处理,(不会处理实际存储的内容),数据原来是什么类型,转换后仍是什么类型。
- settype会直接改变数据本身。
进制转换函数:
decbin():十进制转二进制
decoct():十进制转八进制
dechex():十进制转十六进制
bindec():二进制转十进制
octdec():八进制转十进制
bin2hex():二进制转十六进制
…
连接运算符:是PHP中将多个字符串拼接的一种符号。
. :将两个字符串连接到一起。
.=:复合运算,将左边的内容与右边的内容连接起来,然后重新复制给左边变量。
错误抑制符:有一些错误提前可以预知,又无法避免,但又不希望给用户看,可以是用错误抑制符。
@:在可能出错的表达式前面使用@符号即可。
使用错误抑制符,如果已经在php.ini文件中启用了PHP的track_errors特性,错误信息将会保存在全局变量$php_errormsg中。
执行操作符:反向单引号。位于与~同样的位置。
PHP会试着将反向单引号之间的命令当做服务器命令行命令来执行。表达式的值就是命令的执行结果。
流程控制
流程控制:代码执行的方向。
控制分类:
顺序结构:代码从上到下,顺序执行。(代码执行的最基本结构)
分支结构:给定一条件,同时有多种可执行代码(块),然后根据条件执行某一段代码。
PHP中分支结构主要有两种:if分支和switch分支。
循环结构:在某个条件控制范围内,指定的代码(块)可以重复执行。
For循环,while循环、do-while循环,foreach循环(专门针对数组)。
循环控制:
中断控制:重新开始循环。
continue 层级 //默认为1
终止控制:循环直接进结束。
break 层级 // 默认为1
流程控制替代语法:
流程控制替代语法:分支和循环结构的替代语法。
PHP与HTML混搭。
在PHP中这些大括号不美观,所以PHP提供了一种替代机制。
for(;;){
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |