PHP第三节
赋值运算
$a++; 先赋值在加加
$a=0;
$b=$a++;
echo $b //显示0
++$a 先加加载赋值
$a=0;
$b=++$a;
echo $b//显示1
逻辑运算符
xor 异或 相同为false 不同为true
$a=true;
$b=false;
$res= ($a xor $b);
var_dump($res) //显示bool(true)
比较运算符
<>不等于
==全等于(两个比较内容里,类型也要比较);!==全不等;
Math函数
$num=mt_rand(1,10);//随机1到100的随机数
$num=mt_pow(x,y);// 返回x的Y的次方;
三元运算
$res= $num>5? "{$num}大于5": $num;
echo $res;
运算符优先级
运算符优先级循环语句
<?
switch(表达式){
case :
执行语句;
break;
dafault:
break;
};
$num=5;
while($num>5){
echo "{$num}大于5";
}; // 不显示 先判断 在执行;
do{
echo "{$num}大于5";
}while($num>5); //显示5大于5 先执行在判断
foreach 循环
$arr=array("姓名"=>"张灿","年龄"=>"18","身高"=>"178cm");
foreach( $arr as $k => $v ){
echo $v."---------".$arr[$k]."<br>";
echo $k.":".$v."<br>";
if($k=="姓名"){
$v="李四";
};
};
显示
张灿---------张灿
姓名:张灿
18---------18
年龄:18
178cm---------178cm
身高:178cm
$num=0;
while($num<10){
$num++;
if($num==3){
continue; //跳出本次循环
}else if($num>4){
break; //阻止全部循环
}else{
echo $num;
};
}; //显示 124
?>
函数
PHP中函数名不区分大小写
function test(){
echo "我是test函数";
};
TEST();
函数参数默认值
function test($a="你好",$b="世界"){
echo $a.$b;
};
test(); // 显示 你好世界 ;不传参数时候使用默认值 ,传参时候不适用默认值
test("hello","word");// 显示 helloWord;
函数传值和传址
$c=5;
function test($a){ //这样是传值
$a=10;
};
test($c);
echo $c; //显示5
$c=5;
gunction test(&$a){ //这样是传址
$a=10;
};
test($c);
echo $c; // 显示 10
函数的作用域
$a=10;
$fn= function ($b){
echo $b; //函数里边想得到$a 要传进去 或者global 声明全局变量 函数里边的作用域拿不到外面的变量
};
$fn($a); // 不支持 多个函数名重载 和关键字; 匿名函数结尾要加;号
递归
function test($num){
$num--;
echo $num;
if($num>0){
test($num);
}else{
return; //可以阻止程序执行
};
};
test(5); // 显示43210 ;
静态变量
静态变量 记住上一次的值 常驻内存 static 声明静态变量 把值保存在内存
<?
function test(){
static $num=5;
$num--;
echo $num;
if($num>0){
test();
}else{
unset($num); //unset()销毁静态变量
return;
};
};
test(); //显示43210
?>
数组排序
注意:排序是按照按照ascll码来排序的
1.数组的操作
unset($arr[0])删除数组某个元素
print_r($arr); 打印数组
count($arr)取得数组大小
in_array(10,$arr); 检查数组中包含某个值
1.根据值来排序
<?
值正序排列 sort()
$arr3[]="c";
$arr3[]="a";
$arr3[]="b";
$arr3[]="e";
print_r($arr3);
echo "<br>";
sort($arr3);
print_r($arr3);
显示 Array ( [0] => c [1] => a [2] => b [3] => e )
Array ( [0] => a [1] => b [2] => c [3] => e )
值反序排列 rsort()
$arr3[]="c";
$arr3[]="a";
$arr3[]="b";
$arr3[]="e";
print_r($arr3);
echo "<br>";
rsort($arr3);
print_r($arr3);
显示
Array ( [0] => c [1] => a [2] => b [3] => e )
Array ( [0] => e [1] => c [2] => b [3] => a )
?>
2.根据下标来排序
下标正序排序 ksort();
<?
$arr3["B"]="你好";
$arr3["A"]="荷花";
$arr3["a"]="hello";
$arr3["c"]="word";
print_r($arr3);
echo "<br>";
ksort($arr3);
print_r($arr3);
显示
Array ( [B] => 你好 [A] => 荷花 [a] => hello [c] => word )
Array ( [A] => 荷花 [B] => 你好 [a] => hello [c] => word )
下标反序排列 krsort();
$arr3["B"]="你好";
$arr3["A"]="荷花";
$arr3["a"]="hello";
$arr3["c"]="word";
print_r($arr3);
echo "<br>";
krsort($arr3);
print_r($arr3);
显示
Array ( [B] => 你好 [A] => 荷花 [a] => hello [c] => word )
Array ( [c] => word [a] => hello [B] => 你好 [A] => 荷花 )
?>
字符串
1.统计字符串的长度
<?
$a="你好";
$res= strlen($a);
echo $res; //显示6
显示多个字符串
echo "hello","wrod"; //显示hellowrod
?>
2.字符串变大小写
<?
变小写 strtolower()
$str="fdadsadaasdASDADSASDADASDs";
$res=strtolower($str);
echo $res; //显示 fdadsadaasdasdadsasdadasds
-------------------------------------------------------------------------
变大写 strtoupper()
$str="fdadsadaasdASDADSASDADASDs";
$res=strtoupper($str);
echo $res; //显示 FDADSADAASDASDADSASDADASDS
?>
3.查询需要查询内容第一次出现的位置
只针对字符串 一个空格占一个字符 区分大小写 strpos()
$res= strpos("hello wordor","or" );
echo $res; 显示7
函数中有 i 是否对大小写敏感 不区分大小写 stripos()
$res= stripos("hello wordor","OR" );
echo $res; 显示 7
4.要替换的字符串 str_replace()
$str="asdweedcdf--dafsdds";
$res= str_replace("--","**",$str); $res= str_ireplace("--","**",$str) 带i的只是不区分大小写
echo $res; 显示 asdweedcdf**dafsdds
5.字符串截取
substr()
strstr() 根据字符串来获取前、后字符串
截取的时候,截取的长度小于字符串长度对乱码,针对中文;
$str="你好";
第一个参数为对象
第二个参数从什么位置开始截取 第三个参数截取的位数
$res=substr($str,0,2);/ $res=substr($str,0,6);
echo $res;
显示 乱码 / 你好
$str="erqdasffffrefsdsasdvs";
$res= strstr($str,"ffff",false); //默认false 取后面的字符串 true取前面的字符串
stristr() 不区分大小写
echo $res; 显示ffffrefsdsasdvs
6.删除系统预定义的字符串
$str=" dasdadsadas ";
echo "(".$str.")<br>";
$res= ltrim($str); // 去掉左边的字符串 左边的空格
$res= rtrim($str); // 去掉右边的字符串
echo "(".$res.")";
$res= trim($str); // 去掉全部空格
7.字符串倒叙排列
strrev()
$str= "faadafdf";
$res= strrev($str);
echo $res;
显示 fdfadaaf
8.将换行符转化为HTML标签
$str= "fdaa
asdasd
asda";
$res = nl2br($str); //转化为<br>标签
echo $res;
9.去掉字符串里的标签
strip_tags()
$str="<h1>我是H1标签</h1>";
echo $str."<br>";
$res=strip_tags($str);
echo $res;
显示
<h1>我是H1标签<h1>
<h6 >我是H1标签<h6>
10.把预定义的字符转化成HTML实体
用于评论区的留言
$str="<h1>我是H1标签</h1>";
$res=htmlspecialchars($str); //把预定义的字符转换为 HTML 实体。
echo $res;
显示
<h1>我是H1标签</h1>
预定义字符
预定义的字符是:
& (和号)成为 &
" (双引号)成为 "
' (单引号)成为 '
< (小于)成为 <
(大于)成为 >
11.字符串的割接 和 拼接
explode()割接
implode()拼接
$str="adsdasdas-dfdssfadsf";
$arr= explode("-",$str); // 切割成数组 以 - 切割成数组
print_r($arr);
显示
Array ( [0] => adsdasdas [1] => dfdssfadsf )
--------------------------------------------------------------------
$newstr=implode("*",$arr);// 将数组拼接成字符串 根据给定字符来拼接
echo $newstr;
显示
adsdasdas*dfdssfadsf
数据转化成JSON
json_encode() 编码
json_decode() 解码
解码---将JSON数据解析成数组或者对象 第二个参数为true 转化成数组 默认false 转换成对象
关联数组会转换成对象 默认
索引数组会转换成数组 默认
$arr=["张三","李四","王二","hehe","wrod"];
$arr=["name"=>"张三","age"=>"18"];
$str=json_encode($arr); //编码
echo $str."<hr>";
显示 {"name":"\u5f20\u4e09","age":"18"}
$obj=json_decode($str,true); //解码
print_r($obj);
print_r($obj->name); //调用方法
显示 Array ( [name] => 张三 [age] => 18 )