欢迎光临
我们一直在努力

Web 后端php

Web 后端php

  • PHP基本语法
    • 1. 输出
    • 2. 定义变量和拼接字符串
    • 3. 数组
    • 4. php流程控制–条件语句
    • 5. 流程控制–循环语句
    • 6. 类与函数
      • 类:
      • 函数:
    • 7. 超全局变量
      • 序列化与反序列化

PHP基本语法

PHP(HyperText Preprocessor):超文本预处理器 官方网站: https://www.php.net/

  • PHP 代码必须包含在 <?php … ?>标签中 这是服务器识别 PHP 代码的标识
  • 语句结束:每条语句以 ;(分号)结束
  • 注释 //单行注释 /多行注释/
  • 变量规则:所有变量都必须以$符号开头
  • 1. 输出

    <?php
    // 这是输出helloworld
    echo "helloworld"; // echo 打印,输出
    ?>

    输出:helloworld

    写程序的时候需养成注释代码的好习惯,以免日后忘记,导致从头开始理解代码

    2. 定义变量和拼接字符串

    <?php
    // 定义变量
    $message ="你好,大家好";
    $name="张三";
    // . 表示拼接
    echo $message."我是".$name;
    ?>

    输出:你好,大家好我是张三

    简单来说,把变量比作一个盒子,变量名可以自定义,就像你可以拿不同材质、大小的盒子一样 定义一个变量,就像你网购一个快递,不管是什么样的盒子(你所定义的变量名),里面都是你所下单的东西(即你所定义的值) 变量可以反复使用,并且修改变量中包含的值,所有代码中的变量都会改变,节省修改代码时间

    变量名可以自定义,但最好还是做到“见词生意”,看见变量名就能大概理解变量所代表的值 普通变量:保存单个数据,变量名可自定义

    PHP 变量规则:

    • 变量以 $ 符号开始,后面跟着变量的名称
    • 变量名必须以字母或者下划线字符开始
    • 变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
    • 变量名不能包含空格
    • 变量名是区分大小写的($y 和 $Y 是两个不同的变量) 在这里插入图片描述HTML 和 PHP 可以混合输出

    3. 数组

    创建数组:

  • [ ]
  • array() 函数用于创建数组—-php版本5.4+ 在这里插入图片描述
  • <?php
    // 定义数组:可以保存多个值
    $student = ["xiaoming", "xiaolin", "xixi", "xiaoai"];
    //利用索引获取数组里数据
    echo $student[0]; //0 代表数组第一个值
    ?>

    输出:xiaoming

    数组:保存多个数据,可以用[ ] 组:用来存储一组类同数据(如:都表示姓名)

    4. php流程控制–条件语句

    PHP流程控制语句用于决定代码的执行顺序 条件语句:根据不同情况执行不同代码 在这里插入图片描述

    if语句 表示判断,如果成立则执行,不成立则不执行

    <?php
    $score = 75;
    if ($score >= 60) {
    echo "成绩及格"; }
    ?>

    输出:成绩及格
    #小于60则不会执行代码

    if…else语句 判断两个条件并执行其中一个

    if…elseif…else 语句 判断多个条件,选择所触发条件的代码执行

    <?php
    $score = 85;
    if ($score >= 90) {
    echo "成绩优秀";
    } elseif ($score >= 80) {
    echo "成绩优良"; //85 >=80 成立
    } elseif ($score >=60) {
    echo "成绩及格";
    }else {
    echo "成绩不及格";
    }
    ?>

    输出:成绩优良
    #根据所输入的数据判断哪条条件满足执行

    if语句:表示判断,可判断一次,两次,也可判断多次 if语句执行:当满足条件时则会执行,否则不执行

    5. 流程控制–循环语句

    PHP流程控制语句用于决定代码的执行顺序。 循环语句:重复执行某个任务 for循环: 在这里插入图片描述

    如:打印全班同学的名字

    <?php
    //索引'xiaoming'=0, 'xiaolin'=1, 'xixi'=2, 'xiaogao'=3
    $student = ['xiaoming', 'xiaolin', 'xixi', 'xiaogao'];
    //$i=0 初始化; $<=3 循环条件; $i=$i+1 迭代
    for ($i = 0; $i <= 3 ; $i=$i+1) {
    echo $student[$i].' ' ; //这里输出空格是为了美观
    }
    ?>

    输出:xiaoming xiaolin xixi xiaogao

    for循环:当条件满足时,会重复执行某部分代码 注意:条件一直满足(死循环),会一直重复循环,电脑容易卡死

    while循环: 在这里插入图片描述

    <?php
    $count = 3;
    $student = ['xiaoming', 'xiaolin', 'xixi', 'xiaogao'];
    // ($count >= 0) 循环条件
    while ($count >= 0) {
    echo $student[$count].' ' ;
    $count=$count-1; //迭代,递减操作,确保循环能终止
    }
    ?>

    输出:xiaogao xixi xiaolin xiaoming

    while循环:当条件满足时,会重复执行某部分代码 习惯:知道次数通常用for,不知道次数通常用while

    6. 类与函数

    类:

    在PHP中,使用class关键字来定义一个类 class表示类,可以通过属性表示多个不同类型的数据

    <?php
    header("Content-Type: text/html; charset=utf-8");
    // 定义一个类;student(类名,可自定义)
    class student{
    // 定义属性;public 表示公共的,公开的
    public $name;
    public $age;
    }
    // 类的使用:new一个对象
    $stu1 = new student();
    // 通过new的对象去使用该类中的属性并赋值(name = "xiaoming")
    $stu1 -> name = "xiaoming";
    $stu1 -> age =18;
    // $stu1->name 表示使用$stu1对象中的name属性(此时变量$stu1中的属性name="xiaoming")
    echo $stu1->name;
    echo $stu1->age;
    ?>

    输出:xiaoming18

    函数:

    <?php
    header("Content-Type: text/html; charset=utf-8");
    // 定义一个类;student(类名,可自定义)
    class student{
    // 定义属性(变量);public 表示公共的,公开的
    public $name;
    public $age;
    // function 表示自定义函数;say 函数名(可自定义)
    public function say() {
    //自定义函数
    echo $this->name. " 你好!";
    }
    }
    // 类的使用:new一个对象
    $stu1 = new student();
    $stu1 -> name = "xiaoming"; #代码从上往下执行,先给name赋值xiaoming
    $stu1 -> age =18;
    $stu1->say(); #然后再调用函数
    ?>

    输出:xiaoming 你好!

    类可以包含属性(变量)和方法(函数) 属性用于存储数据,而方法用于执行操作 new关键字直接跟类名来创建对象

    理解关键字
    class
    对象 new
    函数 function
    • 类是模板/蓝图,定义属性和方法的抽象规则;对象是类的实例,是根据模板创建的具体实体,拥有类的属性和方法。 简单说:类造对象,对象用类的功能
  • 一个类可创建多个不同对象,各对象属性值独立,方法共用。
  • 对象通过 -> 访问属性/方法,类通过 :: 访问静态成员。
  • 类是抽象的,不能直接使用;对象是具体的,可直接操作。
  • 魔术方法·: 魔术方法不需要显式调用,而是由PHP解释器在特定时机自动触发。 通常用两个下划线(__)开头,后跟方法名称,如构造方法 __construct()

    <?php
    // 定义一个人类
    class Person {
    //通常用两个下划线(__)开头,后跟方法名称,如构造方法 __construct()
    public function __construct() {
    echo "construct is coming ~";
    }
    }
    // 通过某个机制触发,new的时候触发构造方法(满足条件,自动执行)
    $p1 = new Person();
    ?>

    输出:construct is coming ~

    函数:

  • 普通函数:独立于类之外,直接定义、直接调用,无归属
  • 类的函数:定义在类内部,是类的行为属性,需通过对象(非静态方法)或类名(静态方法)调用
  • PHP 内置函数:PHP 自带的全局函数(“__”开头),无需定义直接触发机制调用,覆盖绝大多数常用功能,是开发中最常使用的函数类型
  • 7. 超全局变量

    PHP 的强⼤在于它能轻松处理⽤⼾通过 Web 提交的数据,这依赖于⼏个特殊的超全局变量,它们是 PHP ⾃动创建的数组 HP提供了预定义的超全局变量,用来获取HTTP请求信息 在这里插入图片描述 案例: 页面代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    </head>
    <body>
    <form action="test10.php" method="get">
    姓名:<input type="text" name="name"><br>
    年龄:<input type="number" name="age"><br>
    <button type="submit">提交</button>
    </form>
    </body>
    </html>

    和接收代码

    <?php
    header("Content-Type: text/html; charset=utf-8");
    $name = $_GET['name'] ;
    $age = $_GET['age'] ;
    echo "<h3>接收到的参数:</h3>";
    echo "姓名:{$name}<br>";
    echo "年龄:{$age}<br>";
    echo "<a href='a.php'>返回填写表单</a>";
    ?>

    效果: 在这里插入图片描述 在这里插入图片描述

    序列化与反序列化

    传递多个数据可以用序列化对象 序列化 是将⼀个 PHP 对象(包括它的类名、所有属性和属性值)转换为⼀个可存储、可传输的字符串的过程。 同样创建一张测试页面

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    </head>
    <body>
    <form action="test10.php" method="get">
    姓名:<input type="text" name="name"><br>
    年龄:<input type="number" name="age"><br>
    密码:<input type="password" name="pwd"><br>
    <button type="submit">提交</button>
    </form>
    </body>
    </html>

    和一张接收页面

    <?php
    header("Content-Type: text/html; charset=utf-8");
    // 用来测试,看是否能获取
    $name = $_GET['name'] ;
    $age = $_GET['age'] ;
    $pwd = $_GET['pwd'] ;
    echo "<h3>接收到的参数:</h3>";
    echo "姓名:{$name}<br>";
    echo "年龄:{$age}<br>";
    echo "密码:{$pwd}<br>";
    // 把多个数据打包到一个类中来
    class student{
    public $name;
    public $age;
    public $pwd;
    }
    $stu1 = new student();
    $stu1 -> name = $name;
    $stu1 -> age = $age;
    $stu1 -> pwd = $pwd;

    echo "<h3>序列化后的数据:</h3>";
    // serialize:序列化:把对象转换为字符串
    $serialized = serialize($stu1);
    echo $serialized;

    echo "<h3>反序列化后的数据:</h3>";
    // unserialize:反序列化:把字符串转换为对象
    $restored = unserialize($serialized); //序列化以后的值
    echo $restored->name ;
    echo "<br>";
    echo $restored->age ;
    echo "<br>";
    echo $restored->pwd ;
    echo "<br>";
    echo "<a href='a.php'>返回填写表单</a>";
    ?>

    效果: 在这里插入图片描述 在这里插入图片描述

    赞(0)
    未经允许不得转载:171主机测评 » Web 后端php
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址