• php基本语句


    <?php
    $mumu=1111;
    $didi=2222;
    $didi=&$mumu;
    $mumu=8888;
    echo $didi ;
    ?>
    输出为8888,可以这样理解:木木电脑才在1111,弟弟的电脑存在2222,然后弟弟和木木共享文件夹(变成相同的值),木木值改变,输出的弟弟值也变。

    变量以 $ 符号开始,后面跟着变量的名称
    变量名必须以字母或者下划线字符开始
    变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
    变量名不能包含空格
    变量名是区分大小写的($y 和 $Y 是两个不同的变量)
    var_dump($a);输出变量a的字符类型,常用于测试。 

      一、变量

    <?php
    // echo "您剁手太严重,淘宝已经屏蔽您的访问";
    // 注释 单行和多行 
    /*
     多行注释 ,可以注释多行代码
     这一行也可以
     */
    // 变量 
    // 定义变量 必须用 $符开头
    // 变量名:只能包含:字母、数字、下划线(_) 数组不能开头 变量名区分大小写
    $name="张三";
    $age=10;
    $height=182.24;
    $num=100;
    $num1=101;
    // 变量计算
    $num2=$num+$num1;
    echo $num2;
    // 复制赋值
    $new_name=$name;
    echo "<br>";
    echo $new_name;
    $name="新张三";
    echo "<br>";
    echo $new_name;
    echo "<br>";
    echo $name;
    echo "<br>";
    // 引用赋值
    $new_name2=&$name;
    echo "new_name2:".$new_name2;
    echo "<br>";
    $name="改成李四了111111";
    echo "new_name2:".$new_name2;
    echo "<br>";
    $new_name2="啊啊啊啊啊啊";
    echo "name:".$name;
    // 可变变量
    echo "<br>";
    $name="abc";
    $abc="def";
    $def="123456789";
    // $test=$abc
    $test=$$$name;
    echo $test;
    echo "<br>";
    // var_dump 可输出更多类型的数据,可获得更多的信息
    $bool=false;
    echo $bool;
    echo "<br>";
    var_dump($bool);
    echo "<br>";
    // isset 变量存在返回true 不存在返回false
    $names="123";
    var_dump(isset($names));
    var_dump(isset($names1));
    $is_exists=isset($names);
    var_dump($is_exists);
    if($is_exists==true){
        echo "变量存在";
    }else{
        echo "变量不存在";
    }
    // unset 删除变量 
    unset($names);
    var_dump(isset($names));
    // var_dump($names)
    
    echo "<pre>";
    // 系统内置全局变量
    var_dump($_SERVER);
    var_dump($_COOKIE);
    var_dump($_SESSION);
    var_dump($_GET);
    var_dump($_POST);
    var_dump($_REQUEST);
    //常量
    // 一旦定义不可修改,只能定义一次;常量名和变量名使用一样的约束
    //常量定义 使用define 关键词定义
    define('name','王五');
    // 常量使用时不需要使用$符
    // 输出常量
    echo name;
    // 输出变量
    echo $name;
    // 常量名在定义时,约定俗成使用全大写,跟变量名进行有效的区分
    define('NAME',"赵六");
    echo NAME;
    // 常量 一经定义不可修改;
    // define('NAME','小红'); // 报错
    // 检查常量是否存在 使用 defind 返回布尔值(true或者false)
    var_dump(defined("NAME"));
    var_dump(defined("NAME1"));
    
    
    // PHP 数据类型
    // 三大类 标量类型  复合类型  特殊类型 
    // 标量类型(基础类型) 包含 数字(int) 浮点(float) 字符串(string) 布尔(bool:boolean)
    $num=100;
    var_dump($num);
    $float_val=100.24;
    var_dump($float_val);
    // 字符串 单引号解析速度比双引号快;
    $str="字符串$num";
    $str1='字符串$num';
    var_dump($str);
    var_dump($str1);
    
    // 复合类型 数组(array)、对象(object)
    $arr=[1,3,4,5,6];
    var_dump($arr);
    $arr2=array(1,3,4,5,6);
    var_dump($arr2);
    $arr3[1]=100;
    var_dump($arr3);
    // 对象()
    class People{
        public $name="123";
    }
    $peo=new People();
    var_dump($peo);
    // 特殊类型 NULL 资源(resource);
    $test=NULL;
    var_dump($test);
    $fd=fopen('./abc.txt','r');
    var_dump($fd);
    ?>
    

      二、类型转换与运算符

    <?php
    // 标量数据类型(基础类型)类型转换
    // 隐式类型转换(自动类型转换)
    $num=100;
    $float_val=20.01;
    // int类型先转换成 浮点类型
    var_dump($num+$float_val);
    // 浮点  int  bool
    // bool 向int转换 true 转成1  false 转成 0
    $bool=true;
    $num2=10;
    var_dump($bool+$num2);
    $bool2=false;
    var_dump($bool2+$num2);
    // 字符串向 int 类型转换
    // $str="101aaaaaa"; // 转成 101
    // $str="aaaa100"; // 转成成0
    $str="100.01aaaa";  // 转成 100.01
    $num3=10;
    var_dump($str+$num3);
    $bool3=true; // 转成1
    $str2="10abc"; // 转成 10
    var_dump($bool3+$str2);
    echo "<br>";
    // 强制类型转换(显示类型转换)
    $str="101abc";
    var_dump(intval($str));
    var_dump(floatval($str));
    // 字符串转bool非空转为true 空转false
    // 数字和浮点转bool 0转false 非0转成 true
    var_dump(boolval($str));
    $num4=100;
    var_dump(boolval($num4));
    echo "<br>";
    // 数据类型检查
    $bool4=true;
    $str3="abcdef";
    var_dump(is_bool($bool4));
    var_dump(is_bool($str3));
    // is_string  is_int  is_float is_array  is_object is_bool
    echo "<br><hr>运算符<br>";
    // 运算符 算数运算符 字符串运算符  比较运算符  逻辑运算符 赋值运算符
    // 算数运算符  + - * / % ++ -- 
    $num5=100;
    $num6=50;
    var_dump($num5+$num6);
    var_dump($num5-$num6);
    var_dump($num5*$num6);
    var_dump($num5/$num6);
    var_dump($num5%3); // 求余 取模 
    var_dump($num5+$num6*2); // 先乘除后加减
    var_dump(($num5+$num6)*2); // 使用()调整优先级
    $num5++;
    var_dump($num5);
    $num5--;
    var_dump($num5);
    echo "<br><hr>字符串运算符<br>";
    // 字符串运算符 使用 "." 拼接字符串
    $name="小明";
    $age=23;
    echo "用户名:".$name." 年龄:".$age;
    echo $name.$age;
    echo "<br><hr>赋值运算符<br>";
    // 赋值运算符
    $name="张三";
    var_dump($name);
    // += -= *= /= %= 
    $num=100; 
    $num+=100;  // 可以看成 $num=$num+100;
    var_dump($num);
    $num-=50; // $num=$num-50
    var_dump($num);
    $num*=2;  // $num=$num*2;
    var_dump($num);
    $num/=3;    // $num=$num/3
    var_dump($num);
    $num%=3;    // $num=$num%3;
    var_dump($num);
    $str="张三";
    $str.=" 年龄 23"; // $str=$str." 年龄 23";
    var_dump($str);
    echo "<br><hr>比较运算符<br>";
    // 比较运算符 > < == >= <= != ===
    $num=100;
    $num1=200;
    var_dump($num > $num1); // 返回 false
    var_dump($num < $num1);
    var_dump($num >= 100);
    var_dump($num <=100);
    var_dump($num == $num1 );
    var_dump($num == 100);
    $str="100aaa"; //  100 
    var_dump($num == $str); // 返回 true
    // 全等于
    var_dump($num===$str); // 返回false 会比较数据类型
    echo "<br><hr>三元运算符<br>";
    // 三目运算(三元运算符)  语法结构: 表达式 ?  成立后时执行 : 不成立时执行
    var_dump(100 > 2 ? "成立" : "不成立" );
    var_dump(100 < 2 ? "成立" : "不成立" );
    var_dump($num < $num1 ? "成立" : "不成立");
    echo "<br><hr>逻辑运算符<br>";
    // 逻辑运算符 与或非  and or !   链接多个表达式
    // and 两端的表达式都成立 整个表达式才成立
    var_dump( 1>2 and 3>1 ); // 不成立  返回 false
    var_dump( 2>1 and 3>2 ); // 成立 返回true 
    // or 两端的表达式 任意一个表达式成立 整个表达式成立
    var_dump( 1>2 or 3>1 ); // 成立  返回 true
    var_dump( 2>1 or 3>2 ); // 成立 返回true 
    var_dump( 2<1 or 3<2 ); // 不成立 返回false
    // 非 ! 取反
    var_dump(!(1>2));
    var_dump(!(2>1));
    ?>
    

      三、流程控制

    <?php
    /*****流程控制************/
    // 顺序结构
    echo "1";
    echo "2";
    echo "3";
    // 分支结构
    if ( 1 < 2 ) {
        # code...
        echo "表达式成立";
    }
    echo "<br>";
    if ( 2 < 1 ) {
        # code...
        echo " 2 < 1 条件成立";
        echo "条件不成立 不执行";
    }
    echo "<br>";
    // 双路分支
    if ( 2>3 ) {
        // 表达式成立 执行的代码块
        echo "条件成立";
    } else {
        // 条件不成立时 执行的代码块
        echo "条件不成立";
    }
    echo "<br>";
    $age=17;
    
    if($age>=18){
        echo "随便玩儿";
    }else{
        echo "未成年,游戏时间不得大于2个小时";
    }
    echo "<br>";
    // 多路分支
    $age=35;
    if ($age<18) { // 小于10
        echo "未成年,游戏时间不得大于2个小时";
    }elseif($age <=30){ // 大于等于18 小于等于 30
        echo "随便玩";
    }elseif($age <=50){ // 大于30 小于等于50
        echo "要不要氪点金!";
    }else{  // 大于50
        echo "老爷子注意身体,早点休息!";
    }
    echo "分支结束!";
    
    
    // 循环结构
    // for  while  do while foreach
    //$i=0 初始条件 只会执行一次
    //$i<10 循环的条件,条件成立时循环才会执行;每次循环都会执行
    // $i++ 自增 除第一次之外每次都执行
    for ($i=0; $i < 10; $i++) { 
        // 循环体 每次循环要执行的代码
        echo $i."<br>";
        # code...
    }
    // 循环嵌套
    // 循环结构 外层循环执行一次 内层循环执行一圈
    // 当前循环会执行100次 循环最好不好超过两层 
    for ($i=1; $i < 10; $i++) { 
        for ($j=1; $j <10 ; $j++) { 
            if($j<=$i){
                echo  $i."*".$j."=".$i*$j." ";
            }
        }
        echo "<br>";
    }
    
    $num=1;
    // 先判断条件 条件成立 执行循环体
    while ($num <= 10) {
    
        // break
        // continue
        // if($num==5){
        //     // 整个循环结束 break 后的代码不在执行
        //     break;
        // }
        $num++;
        if($num==5){
            // 跳出本次循环 continue 后的代码不在执行
            continue;
        }
        echo  $num;
    }
    
    // 先执行一遍循环体,在判断条件
    // do while 不管条件是否成立,循环体至少执行一次;
    $num=1;
    do {
        # code...
        echo "do while的循环体";
        echo $num;
    } while ($num > 10);
    echo "<br>";
    $arr=['a','b','c','d','e','f'];
    foreach ($arr as $k => $v) {
        # code...
        // echo "元素的key:".$key."元素的value:".$value."<br>";
        echo "元素的key:".$k."元素的value:".$v."<br>";
    }
    ?>
    

      四、函数

    <?php
    //声明函数
    // 语法格式: function 函数名(参数.....){函数体 return 返回值}
    // 参数和返回值可选。
    // 函数在声明的时候不会被执行,在调用的位置执行
    function func(){
        echo "我是func函数<br>";
    }
    echo "函数体外";
    //调用函数 : 函数名()
    //什么位置调用,在什么位置执行。
    echo "调用函数前<br>";
    func();
    echo "调用函数后<br>";
    echo "<br><hr>";
    //形参:函数声明时的参数时形参
    //实参:函数在调用时传递的参数是实参
    //函数调用传入的参数是按顺序传递,传值的方式是复制传至
    //函数在声明是定义了几个参数,在调用时就需要传入几个参数;
    function func1($num,$num2){
        echo $num+$num2;
    }
    $num=100;
    func1($num,200);
    echo "<br><hr>返回值";
    // 返回值
    function func2($num,$num1){
        // 使用return 关键词返回相应的内容
        // if(false){
            return $num+$num1;
        // }
        //函数体内,执行return之后函数会立刻返回,之后的代码不会在执行
        echo "return 之后的代码";
        return 500;
    }
    //如果函数有返回值,需要使用变量接收。
    $result=func2(100,200);
    var_dump($result);
    echo "<br><hr>参数默认值<br>";
    // 默认参数 有默认值的参数,在调用时参数可以不传。
    // 有默认值的参数放到参数列表的后边。
    function func3($num,$num2=100){
        return $num+$num2;
    }
    $num=110;
    $result=func3($num);
    var_dump($result);
    $result=func3($num,500);
    var_dump($result);
    
    // 变量的作用域
    // 全局变量和局部变量 
    // 全局变量:在函数体外声明的变量都是全局变量;
    // 全局变量的作用域:在函数体外的任意部分
    // 局部变量:在函数体内声明的变量是局部变量
    // 局部变量的作用域:在当前函数的函数体内。
    $name="张三"; //全局变量
    function func4(){
        $realname="李四"; // 局部变量
        var_dump('函数内realname值:'.$realname);
        // var_dump($name);
    }
    
    function func5(){
        $num=100; // 局部变量
        // var_dump($name);
        // var_dump($realname);
        var_dump('num:'.$num);
    }
    function func6(){
        // 使用global关键词在函数体内引入全局变量
        global $name;
        var_dump('func6的name:'.$name);
        // 可以修改
        $name="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
        // 慎用global 频繁使用global容易造成变量污染。
    }
    func4();
    func5();
    func6();
    var_dump('函数外:name'.$name);
    // var_dump($realname) 
    // 静态变量
    // 使用static 修饰的静态变量
    // 静态变量 只会被定义一次
    function func7(){
        static $num=1;
        $num++;
        echo "<br>";
        var_dump($num);
    }
    func7();
    func7();
    func7();
    func7();
    func7();
    // 
    echo "<br><hr>变量函数<br>";
    $func_name="func7";
    // 变量函数:使用变量当函数名
    $func_name(); // func7();
    ?>
    ===================================================================================================
    变量字符串用双引号引起来代表完全转义,单引号代表输出变量原本样子。
    例如:<?php
    $i="acvb";
    $mumu='abcdwr<p>$i</p>';
    $didi="bcdwr<p>$i</p>";
    echo $mumu;
    echo $didi;
    ?>                    
    输出的结果为
    abcdwr
    $i
    bcdwr
    acvb
    php函数教程地址:http://www.w3school.com.cn/php/php_ref_string.asp
    ---------------------------------------------------------------------------------------------------------------------------------
    常用函数:md5().
    数据类型:1.字符串2.整型3.浮点型4.逻辑5.数组6.对象7.null
    几个循环:上段第三个。
    字符拼接:$a=123;echo $a.'456';    //输出123456
    

      4.1函数定义

    其实说白了 函数就是一个半自动化机器人 就是一个存储代码的一个盒子。 你想使用他的时候就按一下开关。
    <?php
    function dong($b){
        $a=$b;echo $a.'456<br>';
    }
    dong(852);            //把b赋值为852
    dong(864444444);
    ?>
    输出为852456
    864444444456。函数体内的变量可以进行任意的替换。
    

      4.2函数传参

    function demo($name,$edu=‘tianjin’){    //函数体内叫形参
      echo 'hello'.$name.$edu;
    }
    demo('mumu','handan');        //传递实参进入函数体,如果形参已经定义,就把实参替换成形参。
    输出为hellomumuhandan。
    static 静态,这种值放在内存中每改变一次就会永久改变。
    变量分为局部变量与外部变量,函数体内的变量不能在外部被执行。
    global为全局变量。
    <?php
    $name='dong';
    function demo(){//函数体内叫形参
    global $name;
    $name=124;
    }
    demo(); 
    echo $name;
    ?>
    输出为124。删除demo();输出就为dong。$GLOBALS['a1']
    

      4.3return

     <?php
    function demo(){//函数体内叫形参
    return 124;
    }
    $a=demo(); 
    echo $a;
    ?>
    输出值为124,因为返回值付给了变量a。
    自己理解,return就是在函数体内返回一个值,然后在函数体外把这个值赋给变量。
    <?php
    function &demo(){
    static $i=0;
    $i++;
    return $i;
    }
    $a=&demo(); //1
    $a=100;
    $a=demo();
    echo $a; //101
    ?>输出结果为101,取址符&在函数前代表把返回值做成一个整体,与变量绑在一起后,变量变化就会带着return值变化。
    

      五、数组

    <?php
    $arr=array('dong','18','网络安全专家');//数组
    $arr1[]='x';
    echo $arr[2];
    echo $arr1[0];
    ?>输出为网络安全专家x。
    var_dump($arr);//array(3) { [0]=> string(4) "dong" [1]=> string(2) "18" [2]=> string(18) "网络安全专家" }
    

      5.1数组分类

    <?php
    $arr=array('dong','18','网络安全专家');//数组
    for ($i = 0; $i < count($arr); $i++) {
        echo($arr[$i]).'<hr />'; // code...
    }
    ?>输出为
    dong
    --------------------------------------------------------------------------------
    18
    --------------------------------------------------------------------------------
    网络安全专家
    此代码用于遍历数组。
    

      5.2关联数组的遍历

    <?php
    $arr=array('name'=>'dong','age'=>'18','profession'=>'网络安全专家');//数组
    foreach ($arr as $key => $value){
        echo '键名'.$key.'值'.$value.'<br />';
    }
    ?>
    此代码输出为:
    键名name值dong
    键名age值18
    键名profession值网络安全专家
    

      5.3二维数组(数组里面套数组)

    <?php
    $arr=array('name'=>'dong','age'=>'18','profession'=>array('网络安全','网络工程'));//数组
    foreach ($arr as $key => $value){
       if (is_array($value) ){
          foreach ($value as $k1 => $v1)
          {
              echo '二维数组';
          }
        }else {
            echo '键名'.$key.'值'.$value.'<br />';
        }
    }
    ?>
    输出为
    键名name值dong
    键名age值18
    二维数组二维数组
    

      六、时间戳

    <?php
    $arr=time();//时间戳
    echo $arr.'<hr />';
    echo date('Y-m-d H:i:s', $arr);//时间戳转成时间
    ?>
    输出为
    1591749201
    --------------------------------------------------------------------------------
    2020-06-10 08:33:21
    

      七、GET与POST请求

    一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。
    <?php
    var_dump($_GET);
    ?>//获取get值,在自己的浏览器配一个值就能输出,http://39.100.117.158/wan.php?name=dong。输出为array(1) { ["name"]=> string(4) "dong" }。
    <?php
    $l=$_GET['mumu'];
    $m=fopen("./22.txt","w");
    fwrite($m,$l);
    ?>把获取的参数值写进22.txt,在浏览器输入http://39.100.117.158/wan.php?mumu=dong就会把dong写入文件。
    

      八、三元运算符

    $a=1?"2343":"300";//a=1,对的话输出2343,错的话输出300。
    <?php
    //empty//没值为真,有值为假
    //isset//有值为真,没值为假
    $a=isset($_GET['name'])?'1000':$_GET['name'];//判断是否存在,对的话输出1000,错的话输出get获取的值。
    echo $a;
    ?>
    http://39.100.117.158/wan.php?name=dong输出为dong,http://39.100.117.158/wan.php为空。
    //empty    http://39.100.117.158/wan.php?name=dong输出为dong  ,http://39.100.117.158/wan.php为1000。
    数字加引号变成字符型,不加就是整形int。
    

      

  • 相关阅读:
    Retrofit2.0+OkHttp打印Request URL(请求地址参数)
    Java如何从HttpServletRequest中读取HTTP请求的body
    解决gradle:download特别慢的问题
    20180531
    20180531 运算符重载
    20180531 二叉树
    20180530
    20180529-2
    20180529-1
    20180529
  • 原文地址:https://www.cnblogs.com/sunny11/p/13570690.html
Copyright © 2020-2023  润新知