• PHP 笔记——基础


    一、PHP 简介

    1. PHP是什么

    • PHP:Hypertext Preprocessor,即超文本预处理器。
    • PHP是一种跨平台、服务器端、可嵌入HTML文件的脚本语言。
    • 嵌入了PHP代码的HTML文件称为PHP文件,扩展名通常为.php。

    2. PHP工作流程

    • 浏览器

      • 主要功能是显示HTML网页内容,并让用户与这些网页内容产生互动
    • Web服务器

      • WEB服务器的功能是解析HTTP。
      • 目前可用的WEB服务器有很多,Apache服务器、IIS服务器、omcat服务器、Nginx等。
    • PHP预处理器

      • 主要功能是解析PHP代码
    • 数据库服务器

      • 提供数据查询和数据管理服务的软件

    二、PHP 基础

    (1)PHP 标记符

    标记:区分HTML与PHP代码,使用标记对PHP代码进行标识。

    标记类型 开始标记 结束标记 开启项
    标准标记 <?php ?>
    短标记 <? ?> short_open_tag
    ASP式标记 <% %> asp_tags
    Script标记 <script language="php"> </script>

    在PHP7中,仅支持标准标记和短标记。

    (2)PHP 注释

    注释:可以使用注释来进行解释和说明。

    分类 风格 示例
    单行注释 C++风格的单行注释 “//“ // 输出一句话
    单行注释 Shell风格的注释 “#” # 输出一句话
    多行注释 C 风 格 的 多 行 注 释 “/……/” /* echo 'Hello, PHP';
    echo 100 + 200; */

    (3)PHP 标识符

    标识符:自定义一些符号来标记一些名称。

    标识符的定义需要遵循一定的规则,具体如下:

    • 标识符只能由字母、数字、下划线组成,且不能包含空格。
    • 标识符只能以字母或下划线开头的任意长度的字符组成。
    • 标识符区分大小写,类和关键词除外。
    • 如果标识符由多个单词组成,那么应使用下划线进行分隔。

    (4)输出语句

    分类 说明
    echo 可将紧跟其后的一个或多个字符串、表达式、变量和常量的值输出到页面中。
    多个数据之间使用逗号 “,” 分隔。
    print 与 echo 的用法相同,唯一的区别是print只能输出一个值。
    print_r() PHP的内置函数,它可输出任意类型的数据,如字符串、数组等
    var_dump() 不仅可以打印一个或多个任意类型的数据,还可以获取数据的类型和元素个数。

    (5)常量

    • 概念:常量就是在脚本运行过程中值始终不变的量。
    • 特点:一旦被定义就不能被修改或重新定义。
    • 举例:数学中的圆周率π就是一个常量,其值就是固定且不能被改变的。
    • 命名规则:遵循标识符的命名规则,默认大小写敏感,习惯上常量名称总是使用大写字母表示。

    (6)常量的定义和使用

    1. 常量定义使用 define() 函数,其基本格式如下:

    bool define( string $name, mixed $value[, bool $case_insensitive = false] )
    
    • $name:表示常量名称的字符串。
    • $value:常量值,可以是字符串、整数或浮点数。
    • $case_insensitive:其值为true或false,false为默认值。true表示该常量名称在使用时不区分大小写,false
      表示要区分大小写。(即 true:大小写不敏感;false:大小写敏感。)

    2. 可以用函数 constant() 来获取常量的值。

    通过 name 返回常量的值。当你不知道常量名,却需要获取常量的值时,constant() 就很有用了。也就是常量名储存在一个变量里,或者由函数返回常量名。

    mixed constant( string $name )
    

    3. defined() 函数可用于测试常量是否已经定义。

    bool defined( string $name )
    

    如果名称 name 的常量已定义,返回 TRUE;未定义则返回 FALSE。

    (7)预定义常量

    常量名 功能描述
    _FILE_ PHP程序文件名
    _LINE_ PHP程序中的当前行号
    PHP_VERSION PHP程序的版本,如 “7.1.4”
    PHP_OS 执行PHP解析器的操作系统名称
    TRUE 该常量是一个真值(true)
    FALSE 该常量是一个假值(false)
    NULL 该常量是一个空值(null)
    E_ERROR 该常量表示错误级别为致命错误
    E_WARNING 该常量表示错误级别为警告
    E_PARSE 该常量表示错误级别为语法解析错误
    E_NOTICE 该常量表示错误级别为通知提醒

    (8)变量

    • 概念:变量就是保存可变数据的容器。

    • 组成:在PHP中,变量名是由 $ 和 标识符 组成

    • PHP 变量规则:

      • 变量以 $ 符号开头,其后是变量的名称。
      • 变量名称必须以字母或下划线开头,不能以数字开头。
      • 变量名称只能包含字母数字字符和下划线。
      • 变量名称对大小写敏感。

    1. 变量是否设置

    isset(mixed $var)
    
    • 变量不存在
      • 返回 FALSE
    • 变量存在
      • 值为NULL——返回 FALSE
      • 值不为NULL——返回 TURE

    2. 删除变量

    unset(mixed $var)
    

    (9)变量赋值

    由于PHP是一种弱语言,变量不需要事先声明,就可以直接进行赋值使用。

    实现方式:

    • 传值赋值:变量默认总是传值赋值。当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量。当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量
    • 引用赋值:所谓引用赋值就是在要赋值的变量前添加 “&” 符号。新的变量简单的引用(换言之,"成为其别名" 或者 "指向")了原始变量。改动新的变量将影响到原始变量,反之亦然

    (10)可变变量

    在变量名称之前加一个 “$” 符号,即可将变量的值作为变量名称。

    <?php
        $a = 'hello';
        $$a = 'world';
        echo "$a ${$a}";	// hello world
        echo "$a $hello";	// hello world
    ?> 
    

    三、数据类型

    (1)boolean 布尔型

    这是最简单的类型。boolean 表达了真值,可以为 TRUEFALSE

    要指定一个布尔值,使用常量 TRUEFALSE。两个都不区分大小写。

    (2)Integer 整型

    整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号( - 或者 + )。

    二进制表达的 Integer 自 PHP 5.4.0 起可用。

    要使用八进制表达,数字前必须加上 0(零)。要使用十六进制表达,数字前必须加上 0x。要使用二进制表达,数字前必须加上 0b

    $a = 1234; 			// 十进制数
    $a = -123; 			// 负数
    $a = 0123; 			// 八进制数 (等于十进制 83)
    $a = 0x1A; 			// 十六进制数 (等于十进制 26)
    $a = 0b11111111; 	// 二进制数字 (等于十进制 255)
    

    (3)Float 浮点型

    浮点型(也叫浮点数 float,双精度数 double 或实数 real)可以用以下任一语法定义:

    $a = 1.234; 
    $b = 1.2e3; 
    $c = 7E-10;
    

    (4)String 字符串

    字符串是由连续的字母、数字或字符组成的字符序列。

    分别为单引号、双引号、定界符三种语法结构。

    1. 单引号

    定义一个字符串的最简单的方法是用单引号把它包围起来(字符 ' )。

    要表达一个单引号自身,需在它的前面加个反斜线( )来转义。要表达一个反斜线自身,则用两个反斜线 ( \ )。其它任何方式的反斜线都会被当成反斜线本身:也就是说如果想使用其它转义序列例如 或者 ,并不代表任何特殊含义,就单纯是这两个字符本身。

    在单引号字符串中的变量和特殊字符的转义序列将不会被替换。 单引号括起来的字符串被原样输出。

    2. 双引号

    双引号字符串中的变量被PHP解析为变量值,即字符串中的变量在输出时输出变量的值而不是变量名称。

    3. 定界符

    3.1 Heredoc 结构

    heredoc 句法结构:<<<。在该运算符之后要提供一个标识符,然后换行。接下来是字符串 string 本身,最后要用前面定义的标识符作为结束标志。

    结束时所引用的标识符必须在该行的第一列,而且,标识符的命名也要像其它标签一样遵守 PHP 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。

    Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义,但是上文中列出的转义序列还可以使用。变量将被替换,但在 heredoc 结构中含有复杂的变量时要格外小心。

    $str = <<<EOD
    Example of string
    spanning multiple lines
    using heredoc syntax.
    EOD;
    
    3.2 Nowdoc 结构

    就像 heredoc 结构类似于双引号字符串,Nowdoc 结构是类似于单引号字符串的。Nowdoc 结构很象 heredoc 结构,但是 nowdoc 中不进行解析操作。这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义。

    一个 nowdoc 结构也用和 heredocs 结构一样的标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<'EOT'。Heredoc 结构的所有规则也同样适用于 nowdoc 结构,尤其是结束标识符的规则。

    $str = <<<'EOD'
    Example of string
    spanning multiple lines
    using nowdoc syntax.
    EOD;
    

    (5)Array 数组

    要点 说明
    数组构成 数组是由一个或多个数组元素组成的
    数组元素 每个数组元素由键(Key)和值(Value)构成
    元素的识别名称,也被称为数组下标
    元素的内容
    映射 键 和 值 之间存在一种对应关系,称之为映射
    类型划分 根据键的数据类型,可以将数组划分为索引数组和关联数组

    更多内容 请见 PHP笔记——Array 数组

    (6)Object 对象

    详见面向对象编程

    (7)检测数据类型

    PHP提供了一组 is_*() 的内置函数,括号里的参数为待要检测的值。如果检测的值符合检测的数据类型,则返回 true,否则返回 false。

    函数名称 功能描述
    is_bool() 检测是否属于布尔类型
    is_string() 检测是否属于字符串类型
    is_float() 检测是否属于浮点类型
    is_int() 检测是否属于整型
    is_null() 检测是否属于空值
    is_array() 检测是否属于数组
    is_resource() 检测是否属于资源
    is_object() 检测是否属于对象类型
    is_numeric() 检测是否属于数字或数字组成的字符串

    (8)数据类型转换

    1. 自动转换

    • 布尔型
    类型转换 说明
    布尔型->数值型 true->整数1
    false->整数0
    布尔型->字符串型 true->字符串"1"
    false和NULL->空字符串""
    • 数值型
    类型转换 说明
    数值型->字符串型 整数、浮点数->对应的字符串型数据
    数值型->布尔型 整数0、浮点数0.0、NULL以及空数组->false
    其他->true
    • 字符串型
    类型转换 说明
    字符串型->数值型 字符串以合法的数值开始,则会截取字符串头部的数字部分
    字符串不是以合法的数值开始,其值为 0(零)
    字符串型->布尔型 空字符串""、字符串"0"、NULL以及空数组->false
    其他->true

    2. 强制转换

    • 使用类型名

    • 使用类型取值函数

    • 特殊点
    <?php 
        var_dump(0.9 == (1-0.1));
    	var_dump(0.1 == (1-0.9));
    ?>
    
    运行结果:
    bool(true) 
    bool(false)
    

    原因:计算机运算用的是 二进制, 用二进制表示浮点数(有小数),也带来了运算中的精度问题。

    四、运算符

    (1)算数运算符

    例子 名称 操作符
    -$a 取反 -
    $a + $b 加法 +
    $a - $b 减法 $a 和 $b 的差。
    $a * $b 乘法 *
    $a / $b 除法 /
    $a % $b 取模 %
    $a ** $b 幂运算 **

    除法运算符总是返回浮点数。只有在下列情况例外:两个操作数都是整数(或字符串转换成的整数)并且正好能整除,这时它返回一个整数。

    取模运算符的操作数在运算之前都会转换成整数(除去小数部分)。

    取模运算符 % 的结果和被除数的符号(正负号)相同。即 $a % $b 的结果和 $a 的符号相同。

    (2)字符串运算符

    1. 拼接 "."

    字符串运算符只有一个,即英文的句号“.”。它将两个或多个字符串连接起来,结合到一起形成一个新的字符串。PHP中的“+”号只做赋值运算符使用,而不能做字符串运算符。

    2. “.”连接和“+”连接结果的区分

    • 使用“.”时,变量$m和$n两个字符串组成一个新的字符串
    • 使用“+”时,PHP会认为这是一次算术运算

    “+”号的两边有字符类型,则自动转换为整型。字符串的开始部分决定了它的值。

    • 字符串以合法的数值开始,则会截取字符串头部的数字部分
    • 字符串不是以合法的数值开始,其值为 0(零)

    (3)逻辑运算符

    1. 与

    运算符 说明
    && $a和$b都为true,结果为true,否则为false
    and 与&&相同,但优先级较低

    2. 或

    运算符 说明
    || $a和$b中至少有一个为true,则结果为true,否则为false
    or 与||相同,但优先级较低

    3. 非

    运算符 说明
    ! 若$a为false,结果为true,否则相反

    4. 异或

    运算符 说明
    xor $a和$b的值一个为true,一个为false时,结果为true,否则为false

    (4)比较运算符

    运算符 说明
    == 相等
    != 不等
    === 恒等
    只有当两个变量的值和数据类型相同时,结果才为TRUE
    !== 非恒等

    (5)优先级

  • 相关阅读:
    编写高质量代码 改善Python程序的91个建议 (读后 小记)
    Python itertools.combinations 和 itertools.permutations 等价代码实现
    图论期末大作业编程题(如何判断一个4连通4正则图为无爪、无K4图)
    2017年6月 六级成绩 有感(致逝去的研究生生活)
    Machine Learning 方向读博的一些重要期刊及会议 && 读博第一次组会时博导的交代
    个人经历北航计算机学院博士生申请审核制的所感
    转载: beta分布介绍
    目标检测之积分图---integral image 积分图2
    目标检测之harr---点角检测harr
    模式匹配之尺度空间---scale space
  • 原文地址:https://www.cnblogs.com/xzh0717/p/10659200.html
Copyright © 2020-2023  润新知