PHP语法基础

语法基础

1. 变量

1.1 PHP没有创建变量的命令,声明变量时候必须赋初始值,即弱类型语言
1.2 变量的作用域指的是变量能够被引用/使用的那部分脚本
1.3 全局作用域:只能在函数外部使用;局部作用域:只能在函数内部使用
1.4 预定义变量$GLOBALS存储着所有的全局变量
1.5 global 可以声明一个变量为全局变量(如果此全局变量存在则引用全局变量的内存地址创建同名变量)
1.6 预定义变量: GET、_GET、GET_POST、REQUEST、_REQUEST、REQUEST_FILES、SERVER、_SERVER、SERVER_SESSION、COOKIE、_COOKIE、COOKIE__GLOBALS
1.7 常量是不受作用域限制的
1.8 全局变量的生命周期:从脚本执行开始到脚本执行结束
1.9 局部变量的声明周期:从函数执行开始到函数执行结束
1.10 静态变量: 这个变量所存储的信息都是函数最后一次被调用时所包含的信息

  $i = 100;
  $aaa = 200;
  $z;
  define("COLOR", "RED");   // 定义一个常量
  function demo2() {
    global $z;      // 声明/创建一个全局变量
    global $xxxxxx;
    $xxxxxx = 5;
    $y = 6;
    $z = $xxxxxx + $y;
    echo $z . "---";
    $z = "Hello world!<br/>";
    echo $z;
    function t() {
      global $xxxxxx;
      echo $xxxxxx."<br>";
      echo $GLOBALS["z"];   //引用预定义变量下的指定key
    }
    t();
    echo COLOR;
  }
  // demo2();
  // echo "---";
  // print_r($GLOBALS["xxxxxx"]);    //此时变量xxxxxx已被设置为全局变量

2. 打印输出

2.1 echo: 能够输出一个以上的字符串,输出字符可以用逗号隔开
2.2 print: 只能输出一个字符串,并始终返回 1
2.3 print_r(): 可打印复合类型数据
2.4 var_dump(): 可打印更详细的复合类型数据,包括数据类型

function demo4() {
    $txt = "Learn PHP";
    $cars = array("Volvo", "BMW", "SAAB");
    echo "<h2>PHP is FUN</h2>";
    echo "Hello<br>";
    echo "This"," String"," was"," made<br>";
    echo $txt."<br>";
    echo "My car is a {$cars[0]}";
    
    print "<h2>PHP is FUN</h2>";
    print "HL ".$txt."<br>";
    print "I'm about to learn PHP!<br>";
    
    var_dump($cars);
  }
  // demo4();

3. 数据类型

3.1 七种类型: 整数、浮点数、字符串、数组、对象、NULL、布尔
3.2 字符串: 单双引号功能相同,包含为任何文本
3.3 整数: 三种格式分别是十进制、十六进制、八进制

function demo5() {
    // 字符串类型
    $x = "Hello world!";
    var_dump($x);
    echo "<br>";
    // 整数
    $y = 555;
    var_dump($y);
    echo "<br>";
    // 浮点数
    $z = 10.112;
    var_dump($z);
    echo "<br>";
    // 布尔
    $bool = true;
    var_dump($bool);
    echo "<br>";
    // 数组
    $array = array("aa", "bb", "cc");
    var_dump($array);
    echo "<br>";
    // 对象
    class Car {
      var $color;
      function Car($color="green") {
        $this->color = $color;
      }
      function what_color() {
        return $this->color;
      }
    }
    function Enumeral($obj) {
      // 遍历对象属性
      foreach(get_object_vars($obj) as $prop => $val) {
        echo "\t$prop = $val \n";
      }
    }
    $instance_car = new Car("white");
    var_dump($instance_car->what_color());
    echo "<br>";
    Enumeral($instance_car);
    echo "<br>";
    // NULL值
    $null = null;
    var_dump($null);
  }
  // demo5();

4. 字符串函数

4.1 strlen(): 返回字符串字节长度
4.2 str_word_count(): 返回单词个数
4.3 strrev(): 反转字符串
4.4 strpos(): 检索并返回指定字符串或文本在需检索字符串中的位置
4.5 str_replace(): 用一些字符串替换字符串中的另一些字符串

function demo6() {
    echo strlen("Hello w发");   // 10个字节
    echo "<br>";
    echo str_word_count("Hello w发");   //2
    echo "<br>";
    echo strrev("HELLO");
    echo "<br>";
    echo strpos("Hello world!", "H");
    echo "<br>";
    echo str_replace("world", "Kitty", "Hello world");    //Hello Kitty
  }
  // demo6();

5. 常量

5.1 常量贯穿整个脚本是自动全局
5.2 define(key, val, boolean)第三个参数为false表示对大小写敏感

function demo7() {
    define("GREETING", "Welcome to W3School.com.cn", false);
    define("TOKEN", "GL12323", true);
    echo GREETING;
    echo "<br>";
    echo Token;
  }
  // demo7();

6. 运算符、赋值运算符

6.1 字符串与数字计算时候,字符串会自动转换为0
6.2 布尔值与数字计算时候,true会自动转换为1,false为0
6.3 对象与数字计算则报错
6.4 串接字符串
6.5 递增递减
6.6 比较运算符
6.7 逻辑运算符

function demo8() {
    $x = 17;
    $y = 8;
    echo ($x + $y);
    echo "<br>";
    echo ($x - $y);
    echo "<br>";
    echo ($x * $y);
    echo "<br>";
    echo ($x / $y);
    echo "<br>";
    echo ($x % $y);
    echo "<br><hr>";

    echo ("AB" - $x);     // -17
    echo "<br>";
    echo ("AB" + $x);     // 17
    echo "<br>";
    echo ("AB" * $x);     // 0
    echo "<br>";
    echo ("AB" / $x);     // 0
    echo "<br>";
    echo ("AB" % $x);     // 0
    echo "<br>";
    echo (true + $x);     // 18
    echo "<br><hr>";

    echo $x."ABDCD";
    echo "<br><hr>";

    echo ++$x;
    echo "<br><hr>";

    var_dump($x == $y);
    echo "<br><hr>";

    var_dump($x && $y);
    echo "<br><hr>";

    $z = array("a" => "apple", "b" => "banana");
    $z2 = array("c" => "orange", "d" => "peach");
    $z3 = $z + $z2;
    var_dump($z3);
    echo "<br>";
    var_dump($z == $z2);
    echo "<br>";
    var_dump($z === $z2);
    echo "<br>";
    var_dump($z != $z2);
    echo "<br>";
    var_dump($z <> $z2);      //<>表示不等于,与!=功能相同
    echo "<br>";
    var_dump($z !== $z2);
  }
  // demo8();

7. 数据结构

7.1 if…elseif…else
7.2 switch
7.3 while: 只要指定条件为真,则循环代码块
7.4 do…while: 先执行一次代码块,然后只要指定条件为真则重复循环
7.5 for(init counter; test counter; increment counter): 循环代码块指定次数
7.6 foreach: 遍历数组中的每个元素并循环代码块

function demo9() {
    $t = date("H");
    if ($t < "20") {
      echo "Have a good day";
    } elseif ($t > "22") {
      echo $t;
    } else {
      echo "此时处于20-22点之间";
    }
    echo "<br>";

    $favfruit = "orange";
    switch($favfruit) {
      case "apple":
        echo "错误";
        break;
      case "banana":
        echo "错误";
        break;
      case "orange":
        echo "错误";
        break;
      default:
        echo "默认错误";
    }
    echo "<br>";

    for ($x = 0; $x <= 10; $x++) {
      echo "数字是: {$x} <br>";
    }
    echo $x;    // 11,说明是声明在外部的
    echo "<br>";

    $color = array("red", "green", "yellow");
    foreach ($color as $key => $val) {
      echo "索引{$key}: {$val} <br>";
    }

    class Person {
      public $name = "king";
      public $age = 25;
      public $birth;
    }
    $p = new Person();
    $person_arr = get_object_vars($p);
    print_r($person_arr);
    echo "<br>";
    echo var_dump($person_arr["birth"] === NULL);
  }
  // demo9();

8. 函数

8.1 函数参数可设置默认值
8.2 函数名对大小写不敏感

function demo10() {
    function familyName($fname, $year = 20) {
      echo "{$fname} Zhang. Born in $year <br>";
      return $year;
    }
    familyName("Li", 10);
    familyName("Hong", 120);
    echo familyName("Z");
  }
  // demo10();

9. 数组

9.1 索引数组: 带有数字索引的数组
9.2 关联数组: 带有指定键的数组
9.3 多维数组: 包含一个或多个数组的数组
9.4 count(): 函数获取数组长度
9.5 sort(): 以升序对数组排序
9.6 rsort(): 以降序对数组排序
9.7 asort(): 根据值,以升序对关联数组进行排序
9.8 ksort(): 根据键,以升序对关联数组进行排序
9.9 arsort(): 根据值,以降序对关联数组进行排序
9.10 krsort(): 根据键,以降序对关联数组进行排序

function demo11() {
    $cars = array("aa", "bb", "cc");
    var_dump($cars);
    echo "<br>";
    echo count($cars);
    echo "<br><hr>";
    // 遍历索引数组
    $arrlength = count($cars);
    for($x = 0; $x < $arrlength; $x++) {
      echo "{$cars[$x]}<br>";
    }
    echo "<br><hr>";
    //创建以及遍历关联数组
    $ages = array("Bill" => "35", "Steve" => "37", "Elon" => "43");
    var_dump($ages);
    foreach($ages as $key => $val) {
      echo "{$key}: {$val}<br>";
    }
    echo "<br><hr>";
  }
  // demo11();

10. 超全局变量

10.1 $GLOBALS: 获取全局变量
10.2 $_SERVER: 保存关于报头、路径和脚本位置的信息
10.3 $_REQUEST: 用于收集 HTML 表单提交的数据
10.4 $_POST: 广泛用于收集提交 method=“post” 的 HTML 表单后的表单数据
10.5 $_GET: 也可用于收集提交 HTML 表单 (method=“get”) 之后的表单数据
10.6 $_FILES: 获取流文件
10.7 $_ENV: 获取全局环境
10.8 $_COOKIE: cookie设置
10.9 $_SESSION: session设置

function demo11() {
    $cars = array("aa", "bb", "cc");
    var_dump($cars);
    echo "<br>";
    echo count($cars);
    echo "<br><hr>";
    // 遍历索引数组
    $arrlength = count($cars);
    for($x = 0; $x < $arrlength; $x++) {
      echo "{$cars[$x]}<br>";
    }
    echo "<br><hr>";
    //创建以及遍历关联数组
    $ages = array("Bill" => "35", "Steve" => "37", "Elon" => "43");
    var_dump($ages);
    foreach($ages as $key => $val) {
      echo "{$key}: {$val}<br>";
    }
    echo "<br><hr>";
  }
  // demo11();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值