PHP第三节

2017-06-17  本文已影响0人  风越大心越荡

赋值运算

$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 ) 
上一篇下一篇

猜你喜欢

热点阅读