最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • php基础语法总结

    正文概述 转载于:掘金(啊橘)   2021-08-20   492

    php初识

    为什么学php?

    为了熟悉前后端交互 业务流程 学习php

    安装PHPstudy?

     通过live server 起的假的服务(没有后端和数据库),不能做逻辑处理(没有php的运行环境)   所以学习php
    

    什么是php?

     PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。
     PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。
     PHP 脚本在服务器上执行,结果以纯文本 json HTML 形式返回给浏览器
    

    PHP 文件是什么?

    PHP 文件可包含文本、HTML、CSS、JavaScript代码和 PHP 代码
    PHP 代码在服务器上执行,结果以纯 文本/HTML/json 形式返回给浏览器
    PHP 文件的默认文件扩展名是 ".php"
    

    PHP 能做什么?

    PHP 可以生成动态页面内容
    PHP 可以创建、打开、读取、写入、关闭服务器上的文件
    PHP 可以收集表单数据
    PHP 可以发送和接收 cookie
    PHP 可以添加、删除、修改您的数据库中的数据
    PHP 可以限制用户访问您的网站上的一些页面
    PHP 可以加密数据 (sha1 , md5 )
    

    安装 phpstudy 包含两个内容

    对于初学者建议使用集成的服务器组件,它已经包含了 PHP、Apache、Mysql 等服务,免去了开发人员将时间花费在繁琐的配置环境过程;

    • Windows 系统可以使用phpStudy
    • XAMPP XAMPP 支持 Mac OS 和 Windows 系统,下载地址:www.apachefriends.org/zh_cn/index…

    服务器 Apache 会在本地起一个本地服务 http://localhost/ (以后启动phpstudy 必须通过http://localhost/ 来访问 绝对不能通过live serve)

    学习phpstudy 的注意事项

    1. 每天打开电脑 第一件事  启动  phpstudy
    2. 以后启动运行phpstudy   访问根目录(apache服务器)必须通过http://localhost/      来访问  绝对不能通过live server
    3. http://localhost/  起的服务的根目录  在  WWW (点击小图标  鼠标右键 网站根目录)
    4. 以后我们写的所有php文件  必须放在 WWW 中
    

    apache服务器(运行php)

    域名: localhost:80 / 127.0.0.1:80

    根目录: D:\phpstudy_pro\WWW (php文件 必须放在www中)

    PHP基础语法

    怎样使用php

    PHP 脚本可以放在文档中的任何位置。 PHP 脚本以 结束:

    <?php
    // PHP 代码
    ?>
    

    注意:

    • php的语法比较严格 语句结束之后 一定要加";" 否则会报错;
    • php 语法出错 会直接将错误输出到页面中(显示错误的 行号)
    • PHP 代码在服务器上执行,结果以纯 文本 json HTML 形式返回给浏览器

    php的输出语法

    1. echo 可以输出一个或多个字符串(多个字符串之间用逗号分隔);
    2. print 只允许输出一个字符串;
    3. print_r() 打印数组和对象;
    <?php 
        echo "hello","world","Today","is","Thursday","<br>";
        print "你好php";
        
        print_r([1,2,3,4])
    
    ?>
    

    php的注释

    1. 单行注释 (//)
    2. 多行注释 (/**/)

    示例:

    <?php 
        // 这是单行注释
        /*
            这是php多行注释
        */
    ?>
    

    php变量

    PHP 变量规则:

    PHP 变量规则:
    变量以 $ 符号开始,后面跟着变量的名称
    变量名必须以字母或者下划线字符开始
    变量名只能包含字母 数字字符 以及 下划线(A-z、0-9 和 _ )
    变量名不能包含空格
    变量名是区分大小写的($y 和 $Y 是两个不同的变量)
    

    创建(声明)PHP 变量:

    PHP 没有声明变量的命令,变量在您第一次赋值给它的时候被创建:

    <?php
        $a =100;
        $str = "hello world";
        $bool = true;
    
    ?>
    

    注:PHP 也是一门弱类型语言(会根据变量的值,自动把变量转换为正确的数据类型)

    PHP 变量作用域

    • global (全局作用域);
    • local (局部作用域);
    • parameter (参数作用域);
    1. 在函数中声明的变量是局部变量,在函数外声明的变量是全局变量(全局变量和局部变量不会相互影响);
        <?php 
            // 全局变量
            $x = 5;
            $y = 6;
            $z = $x +  $y;
    
            echo $z;
            echo "<br>";
    
    
            // 在函数内声明的变量是局部变量
            function fn(){
                $x = 10;
                $y = 20;
                return $x+$y;
            }
            $result = fn();
            echo $result;
        ?>
    

    那么,如何将函数内的局部变量改为全局变量;

    • 通过global 关键词 允许局部变量 访问全局变量
    • 借助超级全局变量 $GLOBALS (类似js中的window) 访问全局变量

    a. 通过global 关键词 允许局部变量 访问全局变量

       <?php 
        $x = 5;
        function fn(){
            global $x; //   通过global 关键词 可以允许$x 访问全局的$x
            $x = 10;
        }
        fn();
        echo  $x;
        
       ?>
    

    b.借助超级全局变量 GLOBALS(类似js中的window)访问全局变量注:PHP将所有全局变量存储在一个名为GLOBALS (类似js中的window) 访问全局变量 注:PHP 将所有全局变量存储在一个名为 GLOBALS(类似js中的window)访问全局变量注:PHP将所有全局变量存储在一个名为GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量

    <?php 
        $x = 5;
       function fn(){
          $GLOBALS["x"] = 10;  //
       }
       fn();
       echo  $x;
    ?>
    
    1. 参数作用域(形式参数也是局部变量)
    <?php 
        $a = 10;
        $b = 20;
        function fn($a,$b){
            $a = 100;
            $b = 200;
            echo $a."|".$b."<br>";
        }
        fn(100,200);
        echo $a."|".$b;
    ?>
    

    php常量

    常量是全局的
    常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
    定义方法:
    1. 定义常量const
    2. define(name,value)   
     name  常量名
     value  常量值
    
        <?php
            const a = 100;
            echo a;
            
            define("a",100);
            echo a."<br>";
        
        ?>
    

    PHP数据类型

    1. php基本数据类型

    String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值); 注:PHP var_dump() 函数返回变量的数据类型和值; 除此之外还有 is_string(),is_int(),is_float(),is_bool(),is_null(),is_array() 是=> true(在页面显示为1 ) 不是返回 (false => "")

    <?php 
        // 字符串
        $str = "hello哈哈";
        var_dump($str);
        echo is_string($str);
    
        // 整型
        $int = 100;
        var_dump($int);
        echo is_int($int);
    
        // 浮点型
        $float = 100.50;
        var_dump($float);
        echo is_float($float);
    
        // 布尔
        $bool = true;
        var_dump($bool);
        echo is_bool($bool);
        
        // null
        $n = null;
        var_dump($n);
        echo is_null($n);
    
    
        // 数组(一维数组)
        $arr = array(1,2,3,4);
        // var_dump($arr);
        print_r($arr); 
        echo is_array($arr); 
    ?>
    
    

    php运算符

    1. 算术运算符  
    2. 关系运算符
    3. 逻辑运算符
    4. 赋值运算符
    5. 三元运算符
    6. 并置运算符 (.)
    

    php选择

    1. if语句
    if( 条件1 ){
    
    }else if( 条件2 ){
    
    }else{
    
    }
    

    switch语句

    switch( 数据1 ){
        case 数据2:
            break;
        default:    
    }
    

    php 循环

    1. for
    for(初始值; 条件; 增量){}
    
    1. foreach
    foreach( $array as $value ){}
    
    1. while
    while(条件){}
    
    1. do while
    do{ }while(条件)
    

    php字符串拼接

    字符串拼接方式:

    1.借助 并置运算符(.作用类似js中的+)

        $str = $a." ".$b;
        echo $str;
    

    2.可以直接在字符串中拼接变量(此方法仅适用于"" 的字符串 ''不行)

        $str = "$a,$b";   类似ES6字符串模板拼接
        echo $str;
    

    2.1对于数组类型的取值拼接 如果需要多注意(将对应取值使用 {} 包裹起来)

        $str = $GLOBALS["a"].",".$GLOBALS["b"]; 
        echo $str;
        $str="{$GLOBALS["a"]},{$GLOBALS["b"]}";
        echo $str;
    

    php字符串的方法

        strlen() 函数返回字符串的长度(字节数)。
        $str = "hello world!哈哈";
        $len = strlen($str);
        echo $len;
    
    
        strpos() 函数  查找某个或某段字符在字符串中第一次出现的位置  能查到返回对应的下标  查不到 返回false
        $str = "good good study , day day up";
        $index = strpos($str,"day");
        echo $index;
    
    
        explode()  用特定的字符 将字符串切割为数组  (类似split)
        $str = "good good study , day day up";
        $arr = explode(" ",$str);
        print_r($arr);
    
    
        implode()  用特定的字符 将数组拼接为字符串  (类似join)
        join()     implode() 的别名。
        $arr = array("good","good","study",",","day","day","up");
        // print_r($arr);
        // $str = implode(" ",$arr);
        $str = join(" ",$arr);
        echo $str;
    
    
        str_ireplace()   用新的字符串替换旧的字符串(忽略大小写)
        str_replace()   用新的字符串替换旧的字符串(不忽略大小写)
        $str = "good good study , day day up";
        $newStr = str_replace("day","money",$str);
        echo $newStr;
    

    php数组

    在 PHP 中,有三种类型的数组:

    • 数值数组 - 带有数字 ID 键的数组;
    • 关联数组 - 带有指定的键的数组,每个键关联一个值;
    • 多维数组 - 包含一个或多个数组的数组;
    1. 数值数组
       // 定义数组
        $arr = array('a', 'b', 'c');    
    
        // 数量
        $arrlength = count( $arr);    
    
        // 结构中显示键值
        print_r($arr);
    
        //遍历数组
        for($x=0;$x<$arrlength;$x++){
            echo $cars[$x];
            echo "<br>";
        }
    
    
    1. 关联数组
        // 关联数两种创建方式  (以键值对形式存在的数组  类似js的对象)
        //1.
        $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
    
        //2. 
        $age = array();
        $age['Peter']="35";
        $age['Ben']="37";
        $age['Joe']="43";
    
    
        print_r($array); // 结构中显示键值
    
        //遍历关联数组
        foreach($age as $x=>$x_value){   // $array  as $key=>$val
            echo "Key=" . $x . ", Value=" . $x_value;
            echo "<br>";
        }
    
    
    1. 多维数组
        $arr = array(
            array(
                "goodsId"=>"A001",
                "goodsName"=>"Redmi K30",
                "goodsMsg"=>"120Hz流速屏,全速热爱",
                "goodsImg"=>"https://img.qiyuandi.com/images/4/phpjcfzx3se4zzgn.jpg?thumb=1&w=250&h=250&f=webp&q=90",
                "goodsPrice"=>1559,
                "buyNum"=>1
            ),
            array(
                "goodsId"=>"A002",
                "goodsName"=>"Redmi K30",
                "goodsMsg"=>"120Hz流速屏,全速热爱",
                "goodsImg"=>"https://img.qiyuandi.com/images/4/phpjcfzx3se4zzgn.jpg?thumb=1&w=250&h=250&f=webp&q=90",
                "goodsPrice"=>1559,
                "buyNum"=>1
            ), 
            array(
                "goodsId"=>"A003",
                "goodsName"=>"Redmi K30",
                "goodsMsg"=>"120Hz流速屏,全速热爱",
                "goodsImg"=>"https://img.qiyuandi.com/images/4/phpjcfzx3se4zzgn.jpg?thumb=1&w=250&h=250&f=webp&q=90",
                "goodsPrice"=>1559,
                "buyNum"=>1
            ), 
            array(
                "goodsId"=>"A004",
                "goodsName"=>"Redmi K30",
                "goodsMsg"=>"120Hz流速屏,全速热爱",
                "goodsImg"=>"https://img.qiyuandi.com/images/4/phpjcfzx3se4zzgn.jpg?thumb=1&w=250&h=250&f=webp&q=90",
                "goodsPrice"=>1559,
                "buyNum"=>1
            ), 
            array(
                "goodsId"=>"A005",
                "goodsName"=>"Redmi K30",
                "goodsMsg"=>"120Hz流速屏,全速热爱",
                "goodsImg"=>"https://img.qiyuandi.com/images/4/phpjcfzx3se4zzgn.jpg?thumb=1&w=250&h=250&f=webp&q=90",
                "goodsPrice"=>1559,
                "buyNum"=>1
            ),
        );
    

    JSON

        // json_decode() JSON字符串转为JSON对象
        $str = '{"a":"你好", "b":"hello123"}';
        $obj = json_decode($str);
        var_dump($obj);
    
    
        // json_encode() JSON对象转为JSON字符串
        $obj = array(
            "a"=>"你好",
            "b"=>"hello123"
        );
        $str2 = json_encode($obj, JSON_UNESCAPED_UNICODE);
        echo $str2;
    

    PHP数组的方法

    数组头尾新增和删除

    array_unshift();  头部新增
    array_push();     尾部新增
    
    array_shift()   头部删除
    array_pop()     尾部删除
    
        $arr = array("x","y","z");
        array_unshift($arr,1);
        array_push($arr,4);
    
        print_r($arr);
    
        array_shift($arr);
        array_pop($arr);
        print_r($arr);
    
    

    数组增删改

    array_splice()   任意位置增删改
    
        $arr = array("x","y","z");
        array_splice($arr,1,1);
        array_splice($arr,1,0,"hello");
        array_splice($arr,1,1,"hello");
        print_r($arr);
    

    数组裁切

    array_slice(array, startIndex,length);  [startIndex,length]
    
        $arr = array("x","y","z");
        $newList = array_slice($arr,1,1);
        print_r($newList);
    

    数组反转

    array_reverse();     返回反转后的新数组
    
        $arr = array("x","y","z");
        $list = array_reverse($arr);
        print_r($list)
    

    数组转字符串

    join()/implode()   数组转字符串 (注 join()     implode() 的别名)
    
        $arr = array("x","y","z");
        $str = join($arr,"");
        $str = implode($arr,"");
        echo $str;
    

    数组中是否存在某元素

    in_array(item,$arr);   // 存在返回true  不存在返回false
    
        $arr = array("x","y","z");
        $res = in_array(1,$arr);
        echo $res;
    

    数组去重

    array_unique($arr)   // 传入一个数组  返回去重后的新数组
    
     $arr = [1,1,1,1,1,1,1,1,1,1];
     print_r(array_unique($arr));
    

    数组排序;

    a.普通数组(数值数组)

    sort() - 对数组进行升序排列
    
    rsort() - 对数组进行降序排列
    
        //纯数字排序
        $list = array(4,6,2,22,11);
        sort($list); 
        // rsort($list);
        print_r($list);
    
        //非纯数字排序
        $cars=array("Volvo","BMW","Toyota");
        sort($cars);
        print_r($cars);
    

    b. 关联数组;

    ksort() - 根据关联数组的键,对数组进行升序排列;
    krsort() - 根据关联数组的键,对数组进行降序排列;
    
    asort() - 根据关联数组的值,对数组进行升序排列;
    arsort() - 根据关联数组的值,对数组进行降序排列;
    
       $list=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
       ksort($list);
       // krsort($list);
       // asort($list);
       // arsort($list);
       print_r($list);
    

    超级全局变量

    PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用; PHP 超级全局变量列表:

    • $GLOBALS
    • $_SERVER
    • $_REQUEST
    • $_POST
    • $_GET
    • $_COOKIE
    • $_SESSION

    PHP $GLOBALS

    $GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。

    $GLOBALS 是一个包含了全部变量的全局组合 /数组。变量的名字就是数组的键。

        $a = 100;
        $b = 200;
        echo $GLOBALS["a"] + $GLOBALS["b"];
    
    

    PHP $_SERVER

    $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

    属性描述
    $_SERVER['SERVER_ADDR']当前运行脚本所在的服务器的 IP 地址。$_SERVER['SERVER_NAME']当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定$_SERVER['SERVER_PROTOCOL']请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。$_SERVER['REQUEST_METHOD']访问页面使用的请求方法;例如,"GET", "HEAD","POST","PUT"。$_SERVER['REQUEST_TIME']请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)$_SERVER['QUERY_STRING']query string(查询字符串),如果有的话,通过它进行页面访问。$_SERVER['REMOTE_ADDR']浏览当前页面的用户的 IP 地址。$_SERVER['REMOTE_HOST']浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。$_SERVER['REMOTE_PORT']用户机器上连接到 Web 服务器所使用的端口号。
        |属性|描述|
        |$_SERVER['SERVER_ADDR']    |当前运行脚本所在的服务器的 IP 地址。|
        |$_SERVER['SERVER_NAME']    |当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定|
        |$_SERVER['SERVER_PROTOCOL']|请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。|
        |$_SERVER['REQUEST_METHOD']	|访问页面使用的请求方法;例如,"GET", "HEAD","POST","PUT"。|
        |$_SERVER['REQUEST_TIME']   |请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)|
        |$_SERVER['QUERY_STRING']   |query string(查询字符串),如果有的话,通过它进行页面访问。|
        |$_SERVER['REMOTE_ADDR']    |浏览当前页面的用户的 IP 地址。|
        |$_SERVER['REMOTE_PORT']    |用户机器上连接到 Web 服务器所使用的端口号。|
    
        @header("content-type:text/html;charset=utf-8");
    
        echo "服务器地址:"."{$_SERVER['SERVER_ADDR']}<br>";
        echo "服务器的主机名:"."{$_SERVER['SERVER_NAME']}<br>";
        echo "服务器的主机名的端口:"."{$_SERVER['SERVER_PORT']}<br>";
        echo "请求页面时通信协议的名称和版本:"."{$_SERVER['SERVER_PROTOCOL']}<br>";
        
        echo "访问页面使用的请求方法:"."{$_SERVER['REQUEST_METHOD']}<br>";
        echo "请求开始时的时间戳:"."{$_SERVER['REQUEST_TIME']}<br>";
        
        echo "query string(查询字符串):"."{$_SERVER['QUERY_STRING']}<br>";
    
        echo "浏览当前页面的用户的 IP 地址:"."{$_SERVER['REMOTE_ADDR']}<br>";
        echo "用户机器上连接到Web服务器所使用的端口号:"."{$_SERVER['REMOTE_PORT']}<br>";
    

    PHP $_GET

    GET广泛接收以GET方式传递过来的数据(form传递/ajax传递),我们可以使用超级全局变量_GET 广泛接收以GET方式传递过来的数据 (form传递/ajax传递),我们可以使用超级全局变量 G​ET广泛接收以GET方式传递过来的数据(form传递/ajax传递),我们可以使用超级全局变量_GET 来对应字段(键名)接收数据

    html页面结构

        <form action="../php/get.php" method="GET">
            <div>
                <label for="user">用户名</label>
                <input name="user" type="text">
                <span class="user_span"></span>
            </div>
            <div>
                <label for="pwd">密码:</label>
                <input name="pwd" type="text">
                <span class="pwd_span"></span>
            </div>
            <div>
                <button id="logBtn">注册</button>
                <input type="reset">
            </div>
        </form>
    

    get.php

        $user = $_GET["user"];  
        $pwd = $_GET["pwd"];
        echo $user."=>".$pwd;
    

    PHP $_POST

    POST广泛接收以POST方式传递过来的数据(form传递/ajax传递),我们可以使用超级全局变量_POST 广泛接收以POST方式传递过来的数据 (form传递/ajax传递),我们可以使用超级全局变量 P​OST广泛接收以POST方式传递过来的数据(form传递/ajax传递),我们可以使用超级全局变量_POST 来对应字段(键名)的数据

    html页面结构

        <form action="../php/post.php" method="POST">
            <div>
                <label for="user">用户名</label>
                <input name="user" type="text">
                <span class="user_span"></span>
            </div>
            <div>
                <label for="pwd">密码:</label>
                <input name="pwd" type="text">
                <span class="pwd_span"></span>
            </div>
            <div>
                <button id="logBtn">注册</button>
                <input type="reset">
            </div>
        </form>
    

    post.php

        $user = $_POST["user"];  
        $pwd = $_POST["pwd"];
        echo $user."=>".$pwd;
    

    PHP $_REQUEST

    REQUEST广泛接收以(get/post都可以)方式传递过来的数据(form传递/ajax传递),我们可以使用超级全局变量_REQUEST 广泛接收以(get/post都可以)方式传递过来的数据 (form传递/ajax传递),我们可以使用超级全局变量 R​EQUEST广泛接收以(get/post都可以)方式传递过来的数据(form传递/ajax传递),我们可以使用超级全局变量_REQUEST 来对应字段(键名)的数据

    html页面结构

        <form action="../php/post.php" method="POST">
            <div>
                <label for="user">用户名</label>
                <input name="user" type="text">
                <span class="user_span"></span>
            </div>
            <div>
                <label for="pwd">密码:</label>
                <input name="pwd" type="text">
                <span class="pwd_span"></span>
            </div>
            <div>
                <button id="logBtn">注册</button>
                <input type="reset">
            </div>
        </form>
    

    post.php

        $user = $_REQUEST["user"];  
        $pwd = $_REQUEST["pwd"];
        echo $user."=>".$pwd;
    


    起源地下载网 » php基础语法总结

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元