• PHP基础教程


    启程

    PHP 脚本在服务器上执行。
    什么是 PHP 文件?

    • PHP 文件能够包含文本、HTML、CSS 以及 PHP 代码
    • PHP 代码在服务器上执行,而结果以纯文本返回浏览器
    • PHP 文件的后缀是 .php

    PHP 能够做什么?

    • PHP 能够生成动态页面内容
    • PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件
    • PHP 能够接收表单数据
    • PHP 能够发送并取回 cookies
    • PHP 能够添加、删除、修改数据库中的数据
    • PHP 能够限制用户访问网站中的某些页面
    • PHP 能够对数据进行加密

    通过 PHP,可以不受限于只输出 HTML。还能够输出图像、PDF 文件、甚至 Flash 影片。也可以输出任何文本,比如 XHTML 和 XML。

    为什么使用 PHP?

    • PHP 运行于各种平台(Windows, Linux, Unix, Mac OS X 等等)
    • PHP 兼容几乎所有服务器(Apache, IIS 等等)
    • PHP 支持多种数据库

    语法

    PHP 脚本在服务器上执行,然后向浏览器发送回纯 HTML 结果。

    • 基础语法
      PHP 脚本可放置于PHP文件中的任何位置。
      PHP 脚本以 <?php开头,以 ?> 结尾:
    <?php
    // 此处是 PHP 代码
    ?>
    

    PHP 文件的默认文件扩展名是 .php
    PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码。

    • 注释
      三种注释
    <?php
    // 这是单行注释
    # 这也是单行注释
    /*
    这是多行注释块
    它横跨了
    多行
    */
    ?>
    

    变量大小写敏感,函数、类和关键词不敏感

    在 PHP 中,所有变量都对大小写敏感。
    在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。

    变量

    变量是存储信息的容器
    $x=5;
    PHP 没有创建变量的命令。
    变量会在首次为其赋值时被创建。

    变量规则

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

    类型松散

    我们不必告知 PHP 变量的数据类型。
    PHP 根据它的值,自动把变量转换为正确的数据类型。

    变量作用域

    在 PHP 中,可以在脚本的任意位置对变量进行声明。
    变量的作用域指的是变量能够被引用/使用的那部分脚本。
    PHP 有三种不同的变量作用域:

    local(局部)
    global(全局)
    static(静态)
    
    • Local 和 Global 作用域
      函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
      函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
      可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数识别。
    • 在函数内用global访问全局变量
      global 关键词用于在函数内访问全局变量。
    <?php
    $x=5;
    $y=10;
    
    function myTest() {
      global $x,$y;
      $y=$x+$y;
    }
    
    myTest();
    echo $y; // 输出 15
    ?>
    

    PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
    上面的例子可以这样重写:

    <?php
    $x=5;
    $y=10;
    
    function myTest() {
      $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
    } 
    
    myTest();
    echo $y; // 输出 15
    ?>
    
    • static 关键词
      通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。
      要完成这一点,要在首次声明变量时使用 static 关键词:
    <?php
    
    function myTest() {
      static $x=0;
      echo $x;
      $x++;
    }
    
    myTest();//0
    myTest();//1
    myTest();//2
    
    ?>
    

    每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。
    但该变量仍然是函数的局部变量。

    输出

    在 PHP 中,有两种基本的输出方法:echo 和 print。
    两者均是语言结构,有无括号均可使用
    echo 和 print 之间的差异:

    • echo - 能够输出一个以上的字符串
    • print - 只能输出一个字符串,并始终返回 1
    1. echo
      echo 是一个语言结构,有无括号均可使用:echo 或 echo()。
      能够输出一个以上的字符串,多个字符串可用,连接

    2. print
      print 也是语言结构,有无括号均可使用:print 或 print()。
      只能输出一个字符串

    数据类型

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

    1. 字符串
      字符串是字符序列,比如 "Hello world!"。
      字符串可以是引号内的任何文本。单引号或双引号均可:
    2. 整数
      整数是没有小数的数字。
      整数规则:
    • 整数必须有至少一个数字(0-9)
    • 整数不能包含逗号或空格
    • 整数不能有小数点
    • 整数正负均可
    • 可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)

    输出均是以十进制输出

    1. 浮点数
      浮点数是有小数点或指数形式的数字。
    2. 逻辑
      逻辑是 true 或 false。
    3. 数组
      数组在一个变量中存储多个值。
    4. 对象
      对象是存储数据和有关如何处理数据的信息的数据类型。
      在 PHP 中,必须明确地声明对象。
      首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。
      然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型:
    <?php
    class Car
    {
     var $color;
     function Car($color="green") {
       $this->color = $color;
     }
     function what_color() {
       return $this->color;
     }
    }
    ?>
    
    1. NULL 值
      特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。
      NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。
      可以通过把值设置为 NULL,将变量清空。

    字符串函数

    1. strlen() 返回字符串的长度
      以字符计。
      echo strlen("Hello world!");//12
    2. str_word_count() 对字符串中的单词计数
      echo str_word_count("Hello world!"); // 输出 2
    3. strrev() 反转字符串
      echo strrev("Hello world!"); // 输出 !dlrow olleH
    4. strpos() 检索字符串内指定的字符或文本。
      如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
      echo strpos("Hello world!","world");//6
    5. str_replace() 替换字符串中的文本
      用一些字符串替换字符串中的另一些字符。
      echo str_replace("world", "Kitty", "Hello world!"); // 输出 Hello Kitty!

    常量

    常量类似变量,但是常量一旦被定义就无法更改或撤销定义。
    常量是单个值的标识符(名称)。在脚本中无法改变该值。
    有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。

    • 设置常量
      define() 函数设置常量,使用三个参数:
    1. 首个参数定义常量的名称
    2. 第二个参数定义常量的值
    3. 可选的第三个参数规定常量名是否对大小写不敏感。默认是 false即对大小写敏感。
      define("GREETING", "Welcome to W3School.com.cn!");
    • 常量是全局的
      与变量不同,常量贯穿整个脚本是自动全局的。
      在函数内使用了一个常量,即使它在函数外定义:

    运算符

    • 算数运算符

    • 赋值运算符
      =

    • 字符串运算符

    • 递增/递减运算符

    • 比较运算符

    • 逻辑运算符

    • 数组运算符

    条件语句

    条件语句用于基于不同条件执行不同的动作
    在 PHP 中,有以下条件语句:

    • if 语句 - 如果指定条件为真,则执行代码
    • if...else 语句 - 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码
    • if...elseif....else 语句 - 根据两个以上的条件执行不同的代码块
    • switch 语句 - 选择多个代码块之一来执行
    1. if 语句
    if (条件) {
     当条件为 true 时执行的代码;
    }
    
    1. if...else 语句
    if (条件) {
     条件为 true 时执行的代码;
    } else {
     条件为 false 时执行的代码;
    }
    
    1. if...elseif....else 语句
    if (条件) {
     条件为 true 时执行的代码;
    } elseif (condition) {
     条件为 true 时执行的代码;
    } else {
     条件为 false 时执行的代码;
    }
    
    1. switch 语句
      switch 语句用于基于不同条件执行不同动作。
    switch (expression)
    {
    case label1:
     expression = label1 时执行的代码 ;
     break;  
    case label2:
     expression = label2 时执行的代码 ;
     break;
    default:
     表达式的值不等于 label1 及 label2 时执行的代码;
    }
    

    工作原理:

    1. 对表达式(通常是变量)进行一次计算
    2. 把表达式的值与结构中 case 的值进行比较
    3. 如果存在匹配,则执行与 case 关联的代码
    4. 代码执行后,break 语句阻止代码跳入下一个 case 中继续执行
    5. 如果没有 case 为真,则使用 default 语句

    循环语句

    在 PHP 中,有以下循环语句:

    • while - 只要指定条件为真,则循环代码块
    • do...while - 先执行一次代码块,然后只要指定条件为真则重复循环
    • for - 循环代码块指定次数
    • foreach - 遍历数组中的每个元素并循环代码块
    1. while 循环
      在指定条件为 true 时执行代码块。
    while (条件为真) {
     要执行的代码;
    }
    
    1. do...while 循环
      do...while 循环首先会执行一次代码块,然后检查条件,如果指定条件为真,则重复循环。
    do {
     要执行的代码;
    } while (条件为真);
    
    1. for 循环
    for (init counter; test counter; increment counter) {
     code to be executed;
    }
    

    参数:

    • init counter:初始化循环计数器的值
    • test counter:: 评估每个循环迭代。如果值为 TRUE,继续循环。如果它的值为 FALSE,循环结束。
    • increment counter:增加循环计数器的值
    1. foreach 循环
      foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。
    foreach ($array as $value) {
      code to be executed;
    }
    

    每进行一次循环迭代,数组 $array 元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。

    函数

    PHP 的真正力量来自它的函数:它拥有超过 1000 个内建的函数。
    用户定义函数
    除了内建的 PHP 函数,我们可以创建我们自己的函数。
    函数是可以在程序中重复使用的语句块。
    页面加载时函数不会立即执行。
    函数只有在被调用时才会执行。

    创建用户定义函数:
    函数名能够以字母或下划线开头

    function functionName() {
      被执行的代码;
    }
    
    1. 函数参数
      function familyName($fname)
    2. 默认参数值
      function setHeight($minheight=50)
    3. 返回值
    function sum($x,$y) {
     $z=$x+$y;
     return $z;
    }
    

    数组

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

    • 创建数组
      array();
      在 PHP 中,有三种数组类型:
    1. 索引数组 - 带有数字索引的数组

    2. 关联数组 - 带有指定键的数组

    3. 多维数组 - 包含一个或多个数组的数组

    4. 索引数组 - 带有数字索引的数组

    • 索引是自动分配的(索引从 0 开始):
      $cars=array("porsche","BMW","Volvo");
    • 手动分配索引:
    $cars[0]="porsche";
    $cars[1]="BMW";
    $cars[2]="Volvo";
    

    获得数组的长度-count()
    count($array) 函数用于返回数组的长度(元素数)

    遍历索引数组

    for($x=0;$x<$arrlength;$x++) {
     echo $cars[$x];
     echo "<br>";
    }
    
    1. 关联数组 - 带有指定键的数组
      $age=array("Bill"=>"35","Steve"=>"37","Elon"=>"43");
    $age['Bill']="63";
    $age['Steve']="56";
    $age['Elon']="47";
    

    遍历关联数组

    foreach($age as $x=>$x_value) {//$x为键,$x_value为值
     echo "Key=" . $x . ", Value=" . $x_value;
     echo "<br>";
    }
    

    数组排序

    数组中的元素能够以字母或数字顺序进行升序或降序排序。

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

    全局变量 - 超全局变量

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

    $GLOBALS
    $_SERVER
    $_REQUEST
    $_POST
    $_GET
    $_FILES
    $_ENV
    $_COOKIE
    $_SESSION
    
    1. $GLOBALS — 引用全局作用域中可用的全部变量
    $GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
    PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。
    
    1. $_SERVER
      保存关于报头、路径和脚本位置的信息。

    2. $_REQUEST
      接受GPC

    3. $_POST
      用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。

    4. $_GET
      可用于收集提交 HTML 表单 (method="get") 之后的表单数据。$_GET 也可以收集 URL 中的发送的数据。

  • 相关阅读:
    《Cracking the Coding Interview》——第11章:排序和搜索——题目8
    《Cracking the Coding Interview》——第11章:排序和搜索——题目7
    《Cracking the Coding Interview》——第11章:排序和搜索——题目6
    《Cracking the Coding Interview》——第11章:排序和搜索——题目5
    《Cracking the Coding Interview》——第11章:排序和搜索——题目4
    数据结构,体系结构,组成原理,高等数学
    配置TortoiseGit与Github
    生成模型(Generative)和判别模型(Discriminative)
    luogu P1037 产生数 x
    【説明する】グラフ理論
  • 原文地址:https://www.cnblogs.com/Rain99-/p/12939808.html
Copyright © 2020-2023  润新知