**
php学习笔记
**
php八大数据类型加粗样式
-
标量类型 :布尔型、整形、浮点型、字符串
-
复合类型:数组、对象
-
特殊类型:资源、null
一、布尔型、整形、浮点型
布尔类型分为true、false 不区分大小写。
整形和浮点型:
$a = 100 //整形$b = 1.3 //浮点型
二、字符串型相关方法
<?php
//计算字符串长度
$str = '12345';
echo strlen($str);
//"<br/>" 换行
//转换为大写
$str2 = "hello world";
echo "<br/>" ,strtoupper($str2);
//转小写
echo "<br/>",strtolower($str2);
echo "<br/>",ucfirst($str2);//第一个字符转大写
echo "<br/>",ucwords($str2);//每个单词第一个字符转大写
echo "<br/>",strpos($str2,'e',0);//查找字符
//utf-8编码中中文占3字节,GB2312中中文占2字节
echo "<br/>",substr($str2,1,8);//截取字符串,不可用于中文
echo "<br/>",substr("你好啊,hjkhj,一起学习",1,8);//截取字符串,不可用于中文
echo "<br/>",substr($str2,1,-3);//截取字符串
echo "<br/>",mb_substr("你好啊,一起学习php",1,8);//截取字符串,按字符个数截取,可用于中文
echo "<br/>",mb_strcut("你好啊,一起学习php",1,8);//截取字符串,按字节个数截取,可用于中文
$str3 = '12345@343';
echo "<br/>",strstr($str3,'@');//从标识处开始显示剩余字符,如果找不到就返回false
echo "<br/>",strtr($str3,'23',"cbh");//按一对一的方式把字符串的进行转换
$str4 = "1,2,3,4,5";
$srr = explode(",",$str4);//分割字符串,形成数组
echo "<br/>",var_dump($srr);
$srr = implode("=",$srr);//将数组以标识转换为字符串
echo "<br/>",var_dump($srr);
$srr = explode(",",$str4);
echo "<br/>",in_array('2',$srr);//验证某个字符串是否在数组中,在返回true,不在返回false
echo "<br/>",trim(' 2 222 ');//去除左右空格
echo "<br/>",str_replace('123','hlw',$str3);//替换字符
echo "<br/>",strrev($str3);//字符反转
$str5 = "abcd'";
echo "<br/>",addslashes($str5);//在插入数据库前将特殊字符转义
echo "<br/>",stripslashes($str5);//在读取数据库后将特殊字符转义
$str6 = "<script >alert('123')</script>";
echo "<br/>",htmlspecialchars($str6);//将字符串原样输出,不执行
echo "<br/>",htmlspecialchars_decode($str6);//将字符串执行
?>
三、数组类型
1.数组创建方式
//数组
//纯索引下标,从0开始
$arr= array(1,2,3,'4');
print_r($arr);
//键名=>键值对方式
$arr1 = array("a"=>1,"b"=>2);
echo "<br/>";
print_r($arr1);
//键名=>键值对和索引下标 混合 数组的引用,引用索引下标 $arr[0],
$arr2 = array("a"=>1,"b"=>2,3,4);
echo "<br/>" ;print_r($arr2);
echo "<br/>" ;print_r($arr2['1']);
echo "<br/>" ;print_r($arr2['a']);
2.数组的常用方法
//空数组赋值
$arr3 = array();
$arr3[] = 11;
$arr3[] = 2;//下标为1
$arr3["q"] = 4;
echo "<br/>" ;print_r($arr3);
$arr3[1] = 12;//将下标为1的数组重新赋值为12
echo "<br/>" ;print_r($arr3);
echo "<br/>" ,count($arr3);//计算数组长度
$arr4 = array(1,2,3);//插入数据
array_push($arr4,4);//从后插入
echo "<br/>" ;print_r($arr4);
$arr4[] = 5;
echo "<br/>" ;print_r($arr4);
array_unshift($arr4,9);//从前插入
echo "<br/>" ;print_r($arr4);
//array_slice($arr, 开始截取下标,截取个数(可以不写) )截取数组,从后开始截取
$arr5 = array(1,2,3,4,5,6,7,8,9);
$arr5_1= array_slice($arr5,3);
echo "<br/>" ;print_r($arr5);
echo "<br/>" ;print_r($arr5_1);
//给指定的数组元素值都加1,然后形成一个新数组
$arr6 = array(1,2,3,4,5);
$arr6_1 = array();
foreach($arr6 as $k => $v){//$k键名 $v键值 foreach可以对数组进行循环
echo "<br/>" ;
echo $v,"<br/>";
$arr6_1[] = $v+1;
}
echo "<br/>" ;print_r($arr6_1);
echo "<br/>";
//extract() 键名作为变量名,键值变为变量的值
$arr7 = array("a"=>1, "b"=>2, "c"=>3);
extract($arr7);
echo $c;
echo "<br/>";
//compact() 变量名作为键名,变量的值变为键值
$a = 1;
$b = 2;
$c = 3;
$arr7_1 = compact("a", "b", "c");
echo "<br/>" ;print_r($arr7_1);
echo "<br/>";
//explode implode//数组与字符串转换
$str = "小明-小张-小李";
$arr8 = explode("-", $str);
echo "<br/>";
print_r($arr8);
$str2 = implode("#", $arr8);
echo "<br/>";
print_r($str2);
echo "<br/>";
//sort() 数组按值的正向排序,即从小到大
$a = array(6,2,4);
print_r($a);
echo "<br/>";
sort($a);
print_r($a);
echo "<br/>";
//rsort() 数组按值的反向排序,即从大到小
rsort($a);
print_r($a);
echo "<br/>";
//asort() 数组按值的正向排序,即从小到大,保持下标与值的对应关系
asort($a);
print_r($a);
echo "<br/>";
//arsort() 数组按值的正向排序,即从小到大,保持下标与值的对应关系
arsort($a);
print_r($a);
echo "<br/>";
//数组最大值,最小值
$a1 = array(1,22,3,4);
echo max($a1);
echo "<br/>";
echo min($a1);
echo "<br/>";
//数组求和
$a3 = array("foo"=>"bar", "ab"=>1,13=>3.14);
echo array_sum($a3);
echo "<br/>";
//array_merge数组的合并,当键名(字符串型)相同时后者覆盖前者
$a4 = array("foo"=>"bar","s"=>3,5=>6);
$a4_1 = array("s"=>1,5=>12);
$a4_2=array_merge($a4,$a4_1);
print_r($a4_2);
echo "<br/>";
// + 数组的合并,键名相同时取前者
$a4_3 = array("foo"=>"bar","s"=>3,5=>6);
$a4_4 = array("s"=>1,5=>12);
print_r($a4_3+$a4_4);
echo "<br/>";
//array_diff 数组的差集,显示第一个数组在其他数组中没有的值
$a5_1 = array("foo"=>"bar","s"=>12,5=>6,15=>3.43);
$a5_2 = array("s"=>12,5=>11,"foo"=>"sq",15=>111);
$a5 = array_diff($a5_1,$a5_2);
print_r($a5);
echo "<br/>";
//array_intersect 数组的交集
$a5_1 = array("foo"=>"bar","s"=>12,5=>6,15=>3.43);
$a5_2 = array("s"=>12,5=>11,"foo"=>"sq",15=>111);
$a5 = array_intersect($a5_1,$a5_2);
print_r($a5);
echo "<br/>";
//array_unqiue数组去重
$a6_1=array(1,2,3,4,3,4);
$a6_2=array_unique($a6_1);
print_r($a6_2);
echo "<br/>";
print_r($a6_1);
echo "<br/>";
//array_rand() 数组的随机函数,随机输出下标
$a7 = array("小张","小李","小明");
$a7_1 = array_rand($a7);
print_r($a7_1);//输出下标
print_r($a7[$a7_1]);//获取相应的值
echo "<br/>";
$a7_1 = array_rand($a7,2);
print_r($a7_1[0]);//输出下标
print_r($a7_1[1]);//输出下标
print_r($a7[$a7_1[0]]);//获取相应的值
print_r($a7[$a7_1[0]]);//获取相应的值
echo "<br/>";
//Shuffle()将数组的顺序打乱
Shuffle($a7);
print_r($a7);
echo $a7[0];//取一个
echo $a7[1];//取两个
echo "<br/>";
四、对象
创建一个对象
//对象
//声明一个类 w
class w{
}
$a8 = new w();
echo gettype($a8);//查看数据类型
五、资源和null
<?php
//资源
$file = fopen("text.txt","w");//创建了一个可写的文件
echo gettype($file);
echo "<br/>";
//null
// 被赋值为null
// 未被赋值
//被删除\初始化(unset)
$a = 1;
$a1 = null;
echo gettype($a);
unset($a);
echo gettype($a);
echo gettype($a1);
echo gettype($b);
?>
本笔来源于观看课程。“全新PHP课程:PHP在线教程从新手到高手-PHP毕业设计,PHP入门到PHP高级教程,PHP构架师,MySQL、PHP开发框架thinkphp、PHP项目实战-哔哩哔哩】 https://b23.tv/LlSoBZS”。