• 23、php知识点总结基础教程--part-1


    1、基本语法

    PHP 脚本可放置于文档中的任何位置。

    PHP 脚本以 <?php 开头,以 ?> 结尾

    <?php
    // 此处是 PHP 代码
    ?>

    PHP 文件的默认文件扩展名是 ".php"。

    PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码。

    下面的例子是一个简单的 PHP 文件,其中包含了使用内建 PHP 函数 "echo" 在网页上输出文本 "Hello World!" 的一段 PHP 脚本

    <!DOCTYPE html>
    <html>
    <body>
    
    <h1>我的第一张 PHP 页面</h1>
    
    <?php
    echo "Hello World!";
    ?>  
    
    </body>
    </html>

    2、php注释

    <!DOCTYPE html>
    <html>
    <body>
      
    <?php
    // 这是单行注释
    
    # 这也是单行注释
    
    /*
    这是多行注释块
    它横跨了
    多行
    */
    
    echo "Hello World!";
    ?>
      
    </body>
    </html>

    3、php是大小写 不敏感的

    <!DOCTYPE html>
    <html>
    <body>
    <!--大小写 不敏感-->
    <?php
    ECHO "Hello World!<br>";
    echo "Hello World!<br>";
    EcHo "Hello World!<br>";
    ?>  
    
    </body>
    </html>

    4、php变量

    变量视为存储数据的容器,

    PHP 是一门类型松散的语言

    在上面的例子中,请注意我们不必告知 PHP 变量的数据类型。

    PHP 根据它的值,自动把变量转换为正确的数据类型

    PHP 变量规则:

    • 变量以 $ 符号开头,其后是变量的名称
    • 变量名称必须以字母或下划线开头
    • 变量名称不能以数字开头
    • 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
    • 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)

    注释:PHP 变量名称对大小写敏感!

    PHP 有三种不同的变量作用域:

    • local(局部)  函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
    • global(全局) 函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。global 关键词用于访问函数内的全局变量,要做到这一点,请在(函数内部)变量前面使用 global 关键词
    • static(静态)

     

    !doctype html>
    <html>
    <body>
    
    <?php
    $x=5;
    $y=6;
    $z=$x+$y;
    echo $z;
    ?>
    
    </body>
    </html>
    <!DOCTYPE html>
    <html>
    <body>
    
    <?php
    $x=5; // global scope
      
    function myTest() {
       $y=10; // local scope
       echo "<p>在函数内部测试变量:</p>";
       echo "变量 x 是:$x";
       echo "<br>";
       echo "变量 y 是:$y";
    } 
    
    myTest();
    
    echo "<p>在函数之外测试变量:</p>";
    echo "变量 x 是:$x";
    echo "<br>";
    echo "变量 y 是:$y";
    ?>
    
    </body>
    </html>

    <!DOCTYPE html>
    <html>
    <body>
    
    <?php
    $x=5;
    $y=10;
    
    function myTest() {
       global $x,$y;
       $y=$x+$y;
    } 
    
    myTest(); // 运行函数
    echo $y; // 输出变量 $y 的新值 15
    ?>
    
    </body>
    </html>

    以上代码输出结果为15(演示global变量使用方法)

    <!DOCTYPE html>
    <html>
    <body>
    
    <?php
    function myTest() {
       static $x=0;
       echo $x;
       $x++;
    }
    
    myTest();
    echo "<br>";
    myTest();
    echo "<br>";
    myTest();
    echo "<br>";
    myTest();
    echo "<br>";
    myTest();
    ?>  
    
    </body>
    </html>

    以上代码输出结果为0,1,2,3,4,5,(演示static静态变量用,然后,每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息,注释:该变量仍然是函数的局部变量)

    5、echo和print语句

    echo 和 print 之间的差异:

    • echo - 能够输出一个以上的字符串
    • print - 只能输出一个字符串,并始终返回 1

    提示:echo 比 print 稍快,因为它不返回任何值。

    echo 、print都是一个语言结构,有无括号均可使用:echo 或 echo()、:print 或 print()。

    <!DOCTYPE html>
    <html>
    <body>
    
    <?php
    echo "<h2>PHP 很有趣!</h2>";
    echo "Hello world!<br>";
    echo "我计划学习 PHP!<br>";
    echo "这段话", "由", "多个", "字符串", "串接而成。";
    
    $txt1="Learn PHP";
    $txt2="W3School.com.cn";
    $cars=array("Volvo","BMW","SAAB");
    echo $txt1;
    echo "<br>";
    echo "Study PHP at $txt2";
    echo "<br>";
    echo "My car is a {$cars[0]}";
    ?>
    
    </body>
    </html>
    <!DOCTYPE html>
    <html>
    <body>
    
    <?php
    print "<h2>PHP is fun!</h2>";
    print "Hello world!<br>";
    print "I'm about to learn PHP!";
    
    $txt1="Learn PHP";
    $txt2="W3School.com.cn";
    $cars=array("Volvo","BMW","SAAB");
    print $txt1;
    print "<br>";
    print "Study PHP at $txt2";
    print "<br>";
    print "My car is a {$cars[0]}";
    ?>  
    
    </body>
    </html>

    6、php数据类型

    字符串、整数、浮点数、逻辑、数组、对象、NULL。

    <!DOCTYPE html>
    <html>
    <body>
    
    <?php 
    #字符串
    $x = "Hello world!";
    echo $x;
    echo "<br>"; 
    $x = 'Hello world!';
    echo $x;
    
    //整数
    <?php 
    $x = 5985;
    var_dump($x);
    echo "<br>"; 
    $x = -345; // 负数 
    var_dump($x);
    echo "<br>"; 
    $x = 0x8C; // 十六进制数
    var_dump($x);
    echo "<br>";
    $x = 047; // 八进制数
    var_dump($x);
    
    //浮点数
    $x = 10.365;
    var_dump($x);
    echo "<br>"; 
    $x = 2.4e3;
    var_dump($x);
    echo "<br>"; 
    $x = 8E-5;
    var_dump($x);
    
    //boolean
    $x=true;
    $y=false;
    
    
    //数组
    $cars=array("Volvo","BMW","SAAB");
    var_dump($cars);
    
    
    //对象
    class Car
    {
        var $color;
        function Car($color="green") {
          $this->color = $color;
        }
        function what_color() {
          return $this->color;
        }
    }
    
    //打印对象中的变量
    function print_vars($obj) {
       foreach (get_object_vars($obj) as $prop => $val) {
         echo "	$prop = $val
    ";
       }
    }
    
    //对对象进行初始化
    $herbie = new Car("white");
    
    // show herbie properties
    echo "herbie: Properties
    ";
    print_vars($herbie);
    
    /*
    特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。
    NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。
    可以通过把值设置为 NULL,将变量清空
    */
    $x="Hello world!";
    $x=null;
    var_dump($x)
    
    ?>
    
    </body>
    </html>

    7、php字符串函数

    strlen("Hello world!");

    以上代码的输出是:12

    提示:strlen() 常用于循环和其他函数,在确定字符串何时结束很重要时。(例如,在循环中,我们也许需要在字符串的最后一个字符之后停止循环)。、

    <?php
    echo strpos("Hello world!","world");
    ?>

    以上代码的输出是:6。

    提示:上例中字符串 "world" 的位置是 6。是 6(而不是 7)的理由是,字符串中首字符的位置是 0 而不是 1。

     

    8、php常量

    常量类似变量,但是常量一旦被定义就无法更改或撤销定义。

    如需设置常量,请使用 define() 函数 - 它使用三个参数:

    1. 首个参数定义常量的名称
    2. 第二个参数定义常量的值
    3. 可选的第三个参数规定常量名是否对大小写敏感。默认是 false。

    下例创建了一个对大小写敏感的常量,值为 "Welcome to W3School.com.cn!":

    define("GREETING", "Welcome to W3School.com.cn!");
    echo GREETING;

    下例创建了一个对大小写不敏感的常量,值为 "Welcome to W3School.com.cn!":

    define("GREETING", "Welcome to W3School.com.cn!", true);
    echo greeting;

    9、运算符

    ①算数运算符

    运算符名称例子结果
    + 加法 $x + $y $x 与 $y 求和
    - 减法 $x - $y $x 与 $y 的差数
    * 乘法 $x * $y $x 与 $y 的乘积
    / 除法 $x / $y $x 与 $y 的商数
    % 模数 $x % $y $x 除 $y 的余数
    $x=10; 
    $y=6;
    echo ($x + $y); // 输出 16
    echo ($x - $y); // 输出 4
    echo ($x * $y); // 输出 60
    echo ($x / $y); // 输出 1.6666666666667
    echo ($x % $y); // 输出 4

    ②值运算符

    赋值等同于描述
    x = y x = y 右侧表达式为左侧运算数设置值。
    x += y x = x + y
    x -= y x = x - y
    x *= y x = x * y
    x /= y x = x / y
    x %= y x = x % y 模数
    <?php 
    $x=10; 
    echo $x; // 输出 10
    
    $y=20; 
    $y += 100;
    echo $y; // 输出 120
    
    $z=50;
    $z -= 25;
    echo $z; // 输出 25
    
    $i=5;
    $i *= 6;
    echo $i; // 输出 30
    
    $j=10;
    $j /= 5;
    echo $j; // 输出 2
    
    $k=15;
    $k %= 4;
    echo $k; // 输出 3
    ?>

    ③字符串运算符

    运算符名称例子结果
    . 串接 $txt1 = "Hello" $txt2 = $txt1 . " world!" 现在 $txt2 包含 "Hello world!"
    .= 串接赋值 $txt1 = "Hello" $txt1 .= " world!" 现在 $txt1 包含 "Hello world!"
    <?php
    $a = "Hello";
    $b = $a . " world!";
    echo $b; // 输出 Hello world!
    
    $x="Hello";
    $x .= " world!";
    echo $x; // 输出 Hello world!
    ?>

    ④递增递减运算符

    运算符名称描述
    ++$x 前递增 $x 加一递增,然后返回 $x
    $x++ 后递增 返回 $x,然后 $x 加一递增
    --$x 前递减 $x 减一递减,然后返回 $x
    $x-- 后递减 返回 $x,然后 $x 减一递减
    <?php
    $x=10; 
    echo ++$x; // 输出 11
    
    $y=10; 
    echo $y++; // 输出 10
    
    $z=5;
    echo --$z; // 输出 4
    
    $i=5;
    echo $i--; // 输出 5
    ?>

    ⑤比较运算符

    运算符名称例子结果
    == 等于 $x == $y 如果 $x 等于 $y,则返回 true。
    === 全等(完全相同) $x === $y 如果 $x 等于 $y,且它们类型相同,则返回 true。
    != 不等于 $x != $y 如果 $x 不等于 $y,则返回 true。
    <> 不等于 $x <> $y 如果 $x 不等于 $y,则返回 true。
    !== 不全等(完全不同) $x !== $y 如果 $x 不等于 $y,且它们类型不相同,则返回 true。
    > 大于 $x > $y 如果 $x 大于 $y,则返回 true。
    < 大于 $x < $y 如果 $x 小于 $y,则返回 true。
    >= 大于或等于 $x >= $y 如果 $x 大于或者等于 $y,则返回 true.
    <= 小于或等于 $x <= $y 如果 $x 小于或者等于 $y,则返回 true。
    <?php
    $x=100; 
    $y="100";
    
    var_dump($x == $y);
    echo "<br>";
    var_dump($x === $y);
    echo "<br>";
    var_dump($x != $y);
    echo "<br>";
    var_dump($x !== $y);
    echo "<br>";
    
    $a=50;
    $b=90;
    
    var_dump($a > $b);
    echo "<br>";
    var_dump($a < $b);
    ?>

    ⑥逻辑运算符

    运算符名称例子结果
    and $x and $y 如果 $x 和 $y 都为 true,则返回 true。
    or $x or $y 如果 $x 和 $y 至少有一个为 true,则返回 true。
    xor 异或 $x xor $y 如果 $x 和 $y 有且仅有一个为 true,则返回 true。
    && $x && $y 如果 $x 和 $y 都为 true,则返回 true。
    || $x || $y 如果 $x 和 $y 至少有一个为 true,则返回 true。
    ! !$x 如果 $x 不为 true,则返回 true。

    ⑦数组运算符

    运算符名称例子结果
    + 联合 $x + $y $x 和 $y 的联合(但不覆盖重复的键)
    == 相等 $x == $y 如果 $x 和 $y 拥有相同的键/值对,则返回 true。
    === 全等 $x === $y 如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。
    != 不相等 $x != $y 如果 $x 不等于 $y,则返回 true。
    <> 不相等 $x <> $y 如果 $x 不等于 $y,则返回 true。
    !== 不全等 $x !== $y 如果 $x 与 $y 完全不同,则返回 true。
    <?php
    $x = array("a" => "red", "b" => "green"); 
    $y = array("c" => "blue", "d" => "yellow"); 
    $z = $x + $y; // $x 与 $y 的联合
    var_dump($z);
    var_dump($x == $y);
    var_dump($x === $y);
    var_dump($x != $y);
    var_dump($x <> $y);
    var_dump($x !== $y);
    ?>

    10、控制结构

    if else

    <?php
    $t=date("H");
    
    if ($t<"10") {
      echo "Have a good morning!";
    } elseif ($t<"20") {
      echo "Have a good day!";
    } else {
      echo "Have a good night!";
    }
    ?>

    switch

    <?php
    switch ($x)
    {
    case 1:
      echo "Number 1";
      break;
    case 2:
      echo "Number 2";
      break;
    case 3:
      echo "Number 3";
      break;
    default:
      echo "No number between 1 and 3";
    }
    ?>
    
    </body>
    </html>

    While

    <?php 
    $x=1; 
    
    while($x<=5) {
      echo "这个数字是:$x <br>";
      $x++;
    } 
    ?>

    Do While循环

    <?php 
    $x=1; 
    
    do {
      echo "这个数字是:$x <br>";
      $x++;
    } while ($x<=5);
    ?>

    for循环

    <?php 
    for ($x=0; $x<=10; $x++) {
      echo "数字是:$x <br>";
    } 
    ?>

    foreach循环

    foreach 循环只适用于数组,并用于遍历数组中的每个键/值对

    foreach ($array as $value) {
      code to be executed;
    }
    每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。
    <?php 
    $colors = array("red","green","blue","yellow"); 
    
    foreach ($colors as $value) {
      echo "$value <br>";
    }
    ?>

    11、函数

    不带参数的函数

    <?php
    function writeMsg() {
      echo "Hello world!";
    }
    
    writeMsg(); // 调用函数
    ?>

    带参数的函数

    <?php
    function familyName($fname) {
      echo "$fname Zhang.<br>";
    }
    
    familyName("Li");
    familyName("Hong");
    familyName("Tao");
    familyName("Xiao Mei");
    familyName("Jian");
    ?>

    还有一种情况,是默认的参数:

    <?php
    function setHeight($minheight=50) {
      echo "The height is : $minheight <br>";
    }
    
    setHeight(350);
    setHeight(); // 将使用默认值 50
    setHeight(135);
    setHeight(80);
    ?>

    函数返回值:

    <?php
    function sum($x,$y) {
      $z=$x+$y;
      return $z;
    }
    
    echo "5 + 10 = " . sum(5,10) . "<br>";
    echo "7 + 13 = " . sum(7,13) . "<br>";
    echo "2 + 4 = " . sum(2,4);
    ?>

    12、数组

    数组能够在单独的变量名中存储一个或多个值。

    <?php
    $cars=array("Volvo","BMW","SAAB");
    echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
    ?>

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

    • 索引数组 - 带有数字索引的数组
    • 关联数组 - 带有指定键的数组
    • 多维数组 - 包含一个或多个数组的数组

    ①索引数组

    索引是自动分配的(索引从 0 开始):

    $cars=array("Volvo","BMW","SAAB");

    或者也可以手动分配索引:

    $cars[0]="Volvo";
    $cars[1]="BMW";
    $cars[2]="SAAB";


    获取数组长度
    <?php
    $cars=array("Volvo","BMW","SAAB");
    echo count($cars);
    ?>

    遍历数组

    <?php
    $cars=array("Volvo","BMW","SAAB");
    $arrlength=count($cars);
    
    for($x=0;$x<$arrlength;$x++) {
      echo $cars[$x];
      echo "<br>";
    }
    ?>

    ②关联数组

    关联数组是使用您分配给数组的指定键的数组。

    有两种创建关联数组的方法:

    $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
    

    或者:

    $age['Peter']="35";
    $age['Ben']="37";
    $age['Joe']="43";
    <?php
    $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
    echo "Peter is " . $age['Peter'] . " years old.";
    ?>

    遍历:

    <?php
    $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
    
    foreach($age as $x=>$x_value) {
      echo "Key=" . $x . ", Value=" . $x_value;
      echo "<br>";
    }
    ?>

    ③多维数组

    13、排序

    • sort() - 以升序对数组排序
    • rsort() - 以降序对数组排序
    • asort() - 根据值,以升序对关联数组进行排序
    • ksort() - 根据键,以升序对关联数组进行排序
    • arsort() - 根据值,以降序对关联数组进行排序
    • krsort() - 根据键,以降序对关联数组进行排序

    14、超全局变量

    超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量。

    PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。

    这些超全局变量是:

    • $GLOBALS  引用全局作用域中可用的全部变量
    • $_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。
    • $_REQUEST  用于收集 HTML 表单提交的数据。
    • $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量
    • $_GET 可用于收集提交 HTML 表单 (method="get") 之后的表单数据。
    • $_FILES
    • $_ENV
    • $_COOKIE
    • $_SESSION
  • 相关阅读:
    docker容器的IPV6处理。
    PVE添加旧磁盘,重装系统,数据还在
    chrome多开
    MySQL 学习笔记(一)MySQL 事务的ACID特性
    kafka丢消息的情况及处理
    【TS基础】类型“Window & typeof globalThis”上不存在属性“$loading”
    vue 3 的复制功能 vueclipboard3
    前端 判断页面进的是pc还是移动端
    微信浏览器唤起微信支付
    vue中配置可选链操作符兼容
  • 原文地址:https://www.cnblogs.com/kunyashaw/p/5383289.html
Copyright © 2020-2023  润新知