php注释和分隔符和运算符
行注释://或#
块注释:/**/
分隔符:;
打印:echo 打印内容
连接运算符:
. :将两个字符串连接到一起
.= :将后一个值赋给前一个值
错误抑制符:
@:限制报错 @(1 % 0)
变量
定义变量:$变量名,存在内存中。
删除变量:unset($变量名)
预定义变量(系统定义的变量,都是数组):
常用:
$_GET:获取所有表单以get方式提交的数据
$_POST:获取以post方式提交的数据
$_REQUEST:get和post提交的数据
$_SERVER:服务器信息
$_SESSION:session会话数据
$_COOKIE:Cookie会话数据
不常用
$GLOBALS:php中的全局变量
$_ENV:环境信息
$_FILES:用户上传的文件信息
可变变量:
通过多加一个$执行
例:
$a = 'b';
$b = 'bb';
echo $$a; //bb
变量传值
值传递:
将$a的值传递给$b,两个变量不相互影响
引用传递:
将$a的内存地址传递给$b,两个变量相互影响,通过&来实现
$a = 3;
$b = &$a;
变量传值底层原理
常量
定义常量(通常以大写为主,不需要$):
方式一:define('常量名',常量值)
注:
1.特殊字符必须用define
2.使用特殊字符的常量:constant('常量名')
方式二:const 常量名 = 常量值
系统常量:
常用:
PHP_VERSION:php版本号
PHP_INT_SIZE:整形大小
PHP_INT_MAX:整形能表示的最大值(允许出现负数)
系统魔术常量(由双下划綫+常量名+双下划綫结束,会跟着环境变化,但用户改变不了)
__DIR__ :当前被执行的脚本所在电脑的绝对路径
__FILE__:当前被执行的脚本所在电脑的绝对路径(带自己文件的名字)
__LINE__:当前所属的行数
__NAMESPACE__:当前所属的命名空间
__CLASS__:当前所属的类
__METHOD__:当前所属的方法
数据类型
简单数据类型:
整形:int/integer,4byte,
定义方式:
$a = 120; //10进制
$a = 0b110; //2进制
$a = 0120; //8进制
$a = 0x120; //16进制
输出时会自动转换成10进制
浮点型:float/double,8byte
布尔类型:bool/boolean (true = 1,false =0或者不显示)
复合数据类型:
对象类型:object,存放对象(面向对象)
特殊数据类型:
资源类型:resource,存放资源数据(PHP外部数据,如数据库,文件)
空类型:NULL,只有一个值就是NULL(不能运算)
类型转换:
1.自动转换:
2.强制转换:$a = (数据类型)$b
类型转换
类型判断
通过函数进行判断:
is_数据类型(变量名)return boolean类型
var_dump()来查看boolean类型
gettype(‘变量名’)来得到数据类型
settype(‘变量名’,变量类型)设置数据类型
isset() 是否存在, 指内存中的数据
empty()是否为空, 指数据的值
字符串型:string
结构化定义:上标记符后面不能跟随任何内容,下标记符必须顶格,并且只能跟分号
heredoc:$变量名 = <<<标记符
内容
标记符;
nowdoc:$变量名 = <<<‘标记符‘
内容
标记符;
结构化定义可以保证数据的结构不被打乱。可以在浏览器通过查看源码可知。
字符串转义:
\' : 在单引号字符串中显示单引号,双引号不能识别
\" :在双引号字符串中显示双引号,双引号总可以识别$变量,单引号不行
\r :代表回车
\n :代表新一行
\t :类似tab键,输出4个空格
\$ :在PHP中使用$符号作为变量符号,因此需要特定识别
字符串长度:
1.基本函数strlen():得到字符串的长度(字节)
2.多字节扩展模块:mbstring扩展(mb:Multi Bytes)
首先加载php的mbstring扩展

字符串相关函数
转换函数:
implode(连接方式,数组):将数组中的元素按照某个规则连接成一个字符串
explode(分割字符,目标字符串):将字符串按照某个格式进行分割,变成数组
str_split(字符串,字符长度):按照指定长度拆分字符串得到数组
截取函数:
trim(字符串):默认取出两边的空格,按指定内容循环去除两边的内容
itrim(字符串):去除左边的
rtrim(字符串):去除右边的
substr(字符串,起始位置从0开始,长度):指定位置开始截取字符串
strstr(字符串,匹配字符):从指定位置开始,截取到最后(取文件后缀名)
大小写转换函数:
strtolower(字符串): 全部小写
strtoupper(字符串):全部大写
ucfirst(字符串):首字母大写
查找函数:
strpos(字符串,查找字符):判断字符在目标字符串中出现的位置(首次)
strtpos(字符串,查找字符):判断字符在目标字符中出现的位置(最后)
替换函数:
str_replace(被替换的内容,替换的值,字符串):将目标字符串的部分字符进行替换
格式化函数
printf/sprintf(输出字符串有站位符,顺序占位符内容):格式化输出数据
$age = 50;
$name = 'xiaoming';
echo sprintf("你好,今年我%d岁,我叫%s",$age,$name);
其他:
str_repeat(字符串,次数):重复某个字符串N次
str_shuffle(字符串):随机打乱字符串
数组类型(类似于集合):
定义数组:
1. array关键字:$变量 = array(下标 => 元素1,下标 => 元素2...)
2. $变量 = 【元素1,元素2......】
3. 隐形定义数组,给变量增加一个中括号
$变量【】 = 值1;
$变量【下标】 = 值
特性:
1.数组元素的顺序以存入先后为准,和下标无关
2.数组元素的数据类型可以不同
3.特殊值下标自动转换,如:true,false,null
4.数组下标可以不为数字
异形数组
数组中有各种类型的元素被称为异形数组
数组遍历
foreach遍历语法:
foreach( $数组变量 as [ $下标 => ] $值 ){
//通过 $下标 访问元素的下标,通过 $值 访问元素的值
}
for循环语法:
1.获取数组长度count(数组名)
2.下标必须规律
for( $i = 0; $i < count(数组名);$i++){
}
while配合each和list遍历数组:
each函数:each(数组)能够从一个数组中获取当前数组指针所指向的元素的下标和值,拿到之后指针下移,同时拿到元素下标和值,并以一个有四个元素的数组返回
0下标 => 取得元素的下标值
1下标 =>取得元素的值
key下标 => 取得元素的下标值
value下标 => 取得元素的值
注:当数组循环结束时,返回false。
$arg2 = [1,'fadf',3123,'afa'];
echo '<pre>';
print_r(each($arg2));
print_r(each($arg2));
list函数:是一种结构。它会将数组的值赋给自己提供的变量
注:
数组的下标必须是从0开始的有序下标
变量不能多于数组元素
list($变量1,$变量2) = $array;
$arg2 = [1,'fadf',3123,'afa'];
list($a,$b) = $arg2;
print_r($a);
print_r($b);
使用while + list + each
$arg2 = [1,'fadf',3123,'afa'];
while(list($key,$value) = each($arg2)){
print_r('key:' . $key . 'value:' . $value);
echo '<br/>';
}