标题

Similar documents
没有幻灯片标题

设计模式 Design Patterns

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

计算概论A B03 C++语言的基本成分 - 运算成分(2)

数据结构

Microsoft Word - 正文.doc

PowerPoint 演示文稿

第3章 Java语言基础

《计算概论》课程 第十九讲 C 程序设计语言应用

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

Microsoft PowerPoint - 03.Fortran程序设计基础1

WWW PHP Comments Literals Identifiers Keywords Variables Constants Data Types Operators & Expressions 2

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢

2015年计算机二级(C语言)模拟试题及答案(三)

Microsoft Word - 《C语言开发入门》课程教学大纲-2.doc

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

Guava学习之Resources

实验目的 (1) 熟练掌握顺序 分支 循环三种结构 (2) 会使用流程控制结构编写程序 第三章程序的流程控制 实验要求 (1) 掌握 if-else swith-case 的使用 (2) 掌握 while do-while for 的使用 (3) 掌握分支嵌套和循环嵌套 (4) 分析理解如何避免死循

《C语言程序设计》教材习题参考答案

Mx* Language Reference Manual 2016 年 4 月 7 日 1 用词说明 未定义 指中央还没有表态指语言定义中不涉及的部分, 编译器和运行时环境如何表现是未知的 主要是为了给学生实现语言留下足够的空间, 标准测试集里不会出现涉及未定义部分的内容 例如 : 术语 : 源程

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

第 3 章选择结构 q q q Python 中表示条件的方法 if 语句 选择结构程序设计方法

北京大学

chap07.key

第 章 程序由语句组成, 语句经常使用数据类型 运算符 表达式等 Java 语言的数据类型 运算符与表达式等是从 C++ 语言简化而来, 更加简洁 高效 2. 1 常量和变量 Java 程序运行时, 值不可修改的数据称为常量, 分为字面常量 ( 常数 ) 与标识符常量两种 变量是程序运行时值发生改变

第 章 顺序结构程序设计 程序里要对数据进行各种操作 其中进行各种运算操作是最基本的操作之一 在 语言程序中 使用表达式 也就是通常所说的计算式子 描述各种运算 表达式是由参与运算的数据和表示运算的符号按照一定的规则组成的式子 描述运算的符号称为运算符 由一个或两个特定符号表示一种运算 语言具有丰富

《C语言程序设计》第2版教材习题参考答案

Microsoft PowerPoint - 07 派生数据类型

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

C++ 程序设计 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

第1章 Delphi简介

Microsoft Word - 第1篇(1-6).DOC

任务 3 加法运算练习游戏 019 这就需要用到 C# 语言的基础语法, 如数据类型 运算符和控制语句, 还需要其他的常用控件 在此任务的完成过程中, 读者可以接触到 C# 的数据类型 变量常量 运算符 控制语句等基础语法, 掌握以上知识点及其在软件开发中的应用 3.2 相关知识 预定义

<4D F736F F F696E74202D20B5DA32D5C220B5A5C6ACBBFA433531D3EFD1D4BBF9B4A1>

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1A1D4F1>

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]


ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 30 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : /// <summary> /// 测试方法

PowerPoint 演示文稿

第 21 讲 CGI 程序 byperl 及 PHP 小结 张高川 遗传学与生物信息学系基础医学与生物科学学院苏州大学医学部 WX: zhanggaochuan QQ: 苏州大学医学部基础医学与生物科

PowerPoint 演示文稿

Microsoft Word - oracle-排版文件.doc

第 4 章 Linux shell 程序设计 shell UNIX/Linux Linux shell shell if case while for shell Linux Linux 本章主要介绍 Linux shell( 默认是 bash) 的语法结构 变量定义及赋值引用 标点符号 控制语句等

Microsoft PowerPoint - string_kruse [兼容模式]

第二章 Java 语法基础 实验目的 (1) 常量 变量与数据类型 a. 掌握 Java 的常量 变量声明及使用方法 b. 掌握 Java 各种数据类型的使用 c. 掌握基本的输入输出方法 (2) 运算符与表达式 a. 掌握算术运算 关系运算 逻辑运算, 及优先关系 b. 掌握表达式的使用 (3)

class sometimes { int naive; void make_money() { this.naive++; int main() { sometimes keep = new sometimes; keep.naive = 0; while (getint() < Wallace)

<4D F736F F D204323B3CCD0F2C9E8BCC6BDCCB3CCA3A8B5DA33B0E6A3A9CEA2BFCEB0E620B5DA33D5C22E646F63>

chp2

ch02_Basic

class sometimes { int naive; void make_money() { this.naive++; int main() { sometimes keep = new sometimes; keep.naive = 0; while (getint() < Wallace)

第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos(

无类继承.key

PowerPoint 演示文稿

Microsoft Word - 第3章.doc

<4D F736F F D205A572D2D A1AAA1AAD4ACE7F42D43D3EFD1D4CAB5D1B5BDCCB3CC2E646F6378>

PowerPoint 演示文稿

3.1 num = 3 ch = 'C' 2

试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

Microsoft Word - 第3章.doc

没有幻灯片标题

5. 閱 讀 下 文, 推 斷 內 最 適 合 填 入 的 詞 語 依 序 為 何? 人 也 真 是 一 個 絕 字, 一 邊 向 左, 一 邊 向 右, 一 副 的 樣 子, 偏 又 相 連 著, 各 說 各 話 各 走 各 路, 卻 又 人, 這 麼 一 個 簡 單 的 字, 竟 包 含 如 此

STRUCT Tag OptTag ID Tag ID 7..4 Declarators VarDec ID VarDec LB INT RB FunDec ID LP VarList RP ID LP RP VarList ParamDec COMMA VarList ParamDec Param

CHAPTER VC#

<4D F736F F F696E74202D20B5DAC8FDB2BFB7D633A3BA CD3EFD1D42DCAFDBEDDC0E0D0CDD3EBB2D9D7F7B7FB2E707074>

内容简介 本书以教育部高等学校计算机科学与技术教学指导委员会编制的 关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求 中有关计算机程序设计基础 (C 语言 ) 课程教学基本要求为指导, 结合教育部考试中心最新的全国计算机等级考试二级 (C 语言程序设计 ) 考试大纲要求和作者多

Microsoft Word - 教学大纲.doc

新・解きながら学ぶJava

"Hi" "Visual Basic 6.0" ""( 空字符串 ) 3. 货币 (Currency) 第 3 章数据类型及其运算 35 货币数据类型是为计算货币而设置的数据类型 在内存中用 8 个字节 (64 位 ) 存储, 精 确到小数点后 4 位 ( 小数点前 15 位 ), 在小数点后第 4

untitled

Microsoft Word - 第3章.doc

CHAPTER 1

第1章 Delphi简介

期中考试试题讲解

数学软件 Matlab 编程基础 ( 脚本 ) 1

第 2 章编程基础 使用程序设计语言, 必须熟练掌握其基本的语法规则, 才能在后续内容的学习中运用自 如, 并减少编程时可能发生的错误 本章主要介绍 Visual Basic.NET 的数据类型 常量 变量 运算符 表达式 函数等方面的基本概念和基础知识 通过本章的学习, 应该重点掌握以下内容 :

4.C ( 详细解析见视频课程 绝对值 01 约 21 分 15 秒处 ) 5.E ( 详细解析见视频课程 绝对值 01 约 32 分 05 秒处 ) 6.D ( 详细解析见视频课程 绝对值 02 约 4 分 28 秒处 ) 7.C ( 详细解析见视频课程 绝对值 02 约 14 分 05 秒处 )


Microsoft PowerPoint - 1. C++介绍.ppt [兼容模式]

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

Microsoft PowerPoint - 01_Introduction.ppt

Microsoft Word - 正文.doc

内容简介 C 语言是一种结构化程序设计语言, 本书通过大量的实例讲解 C 语言程序设计的方法, 主要内容包括 C 语言程序的结构 数据类型 运算符和表达式 数据的输入和输出 选择结构 循环结构 数组 函数 指针 编译预处理 结构和共用体 位运算 文件等 每个单元包括小结 实验 习题等 本书可作为高等

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复

TD

個 人 的 手, 拉 著 瞎 子 的 手 把 他 帶 往 村 外 的 時 候, 對 於 瞎 子 來 講, 那 個 人 的 手 和 耶 穌 的 手 有 沒 有 區 別? 沒 有! 為 什 麼 沒 有 區 別? 因 為 對 於 一 個 瞎 子 來 說, 手 和 耳 朵 就 是 他 接 觸 世 界, 瞭

C++ 程序设计 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

Microsoft Word - 新1-12.doc

第二部分动态网站开发语言 第 3 课动态网页脚本语言 VBScript 本课导读 VBScript 是由微软公司推出的, 其语法是由 Visual Basic(VB) 演化来的, 可以看作是 VB 语言的简化版, 与 VB 的关系也非常密切 它具有原语言容易学习的特性 目前这种语言广泛应用于网页和

Microsoft Word - 文前.doc

untitled

Transcription:

第 3 章 学习要点 : 通过本章学习, 读者可以掌握 PHP 提供的整型 浮点型和字符串等常量的表示方法, 变量的定义和初始化方法 ; 掌握算术运算符 赋值运算符 比较运算符 逻辑运算符和字符串运算符的实现和运算规则, 了解位运算符 错误控制运算符和执行运算符的基本功能, 掌握表达式的编写 3.1 PHP 基础 学习 PHP 语言的标记 注释和标识符等基本概念是学习基本语法的第一步, 也是进行 PHP 编程开发的第一步 PHP 语言的语法非常灵活, 与其他编程语言有很多不同之处 读者如果学习过其他语言, 可通过体会 PHP 与其他语言的区别来学习 PHP 3.1.1 PHP 标记 当解析一个文件时,PHP 会寻找起始和结束标记, 两个标记之间的所有文本都会被解释为 PHP 代码, 此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去, 而任何起始和结束标记之外的部分都会被认为是普通的 HTML, 这就是 PHP 标记的作用 PHP 标记符风格不同, 可划分为以下 4 种 1. 标准风格标准风格的 PHP 标记代码如下 : echo" 标准风格的标记 " 在默认情况下, 本书中使用的标记风格是标准风格 2. 脚本风格 脚本风格的 PHP 标记代码如下 : scriptlanguage="" echo ' 脚本风格的标记 ' script 在 XHTML 或者 XML 中推荐使用这种标记风格, 它是符合 XML 语言规范的写法 3.ASP 风格 ASP 风格的 PHP 标记代码如下 :

% echo"asp 风格的标记 " % 4. 简短风格 简短风格的 PHP 标记代码如下 : echo" 简短风格的标记 " 注意 : 简短风格标记最为简单, 输入字符最少, 要使用简短风格, 必须保证.ini 文件中的 short_open_tag=on 同理, 要使用 ASP 风格, 必须保证.ini 文件中的 asp_tags= On 保存修改后的.ini 文件, 然后重新启动 Apache 服务器, 即可支持这两种标记风格 3.1.2 PHP 注释 与其他的编程语言一样,PHP 语句在编写的过程中, 也需要一些注释命令来对一些语句进行说明, 以便日后维护或者其他用户读取 这些注释并不真正执行, 只是起到说明的作用 有时, 在程序的调试过程中, 也可以通过注释命令使得某个语句暂时不执行, 以完成对语句的调试作用 1. 单行注释使用 # 符号作为单行语句的注释符, 写在需要注释的行或编码前方 如下所示 : # 这是一个注释行 或者使用 // 符号作为单行语句的注释符, 写在需要注释的行或编码前方 如下所示 : 这是另一个注释行 2. 多行注释 使用以 /* 符号开始 以 */ 符号结束的可以连续书写多行的注释语句 如下所示 : * 这是多行注释还可以更多行 * 注意 : 在使用多行注释时, 多行注释中不允许再嵌套使用多行注释 3.1.3 PHP 标识符 PHP 标识符指由用户定义的 可唯一标识有意义的字符序列, 如变量名 函数名 类名 方法名等 标识符必须遵守以下规则 (1) 标识符只能由字母 数字和下画线组成 (2) 标识符可以由一个或多个字符组成, 且必须以字母或下画线开头 37 第 3 章

PHP+MySQL 网站开发与实践教程 (3) 当标识符用作变量名时, 区分大小写 (4) 如果标识符由多个单词组成, 那么应使用下画线进行分隔, 如 class_name 38 (5) 不能使用 PHP 里事先定义好并赋予了特殊含义的关键字作为变量名 函数名, 如 用于定义类的关键字 class 3.1.4 简单的 PHP 程序示例 例 3.1 编写一个简单的 PHP 程序 代码如下 : $str = " 这是我编写的第一个 PHP 程序 " echo $str 定义一个字符串输出字符串内容 程序运行结果如图 3.1 所示 注意 : 在 PHP 中, 每条语句以分号 ; 结束, PHP 解析器只要遇到分号 ; 就认为一条语句结束了 因此, 可以将多条 PHP 语句写在一行内, 也可以将一条语句写成多行 图 3.1 简单的 PHP 程序 3.2 数据类型 3.2 节 为了方便对数据的处理, 需要对数据进行分类 PHP 支持八种数据类型, 包 括四种标量类型 两种复合类型和两种特殊类型 PHP 数据类型如表 3.1 所示 表 3.1 PHP 数据类型 分类类型类型名称 标量类型 复合类型 特殊类型 boolean integer float 或 double string array object resource NULL 布尔类型整型浮点型字符串类型数组对象资源空 3.2.1 布尔类型 布尔类型 (boolean) 是数据类型中最简单的类型, 又被称为逻辑类型 布尔值只有两个, 即真和假, 通常 1 即为真值 true,0 即为假值 false, 并且不区分大小写 布尔类型数据主要用在条件表达式和逻辑表达式中, 用来控制程序流程 3.2.2 整型 整型 (integer) 用来表示整数, 整型数值可以使用十进制 十六进制或八进制表示, 前面

可以加上符号 (+ 或者 -) 来表示正整数和负整数 整型数值的表示和机器的字长有关, 在 32 位机器中, 整型的表示范围是 -2147483648~+2147483647 在使用八进制表达时, 整 型数值前必须加上 0( 零 ); 在使用十六进制表达时, 整型数值前必须加上 0x 例如 : $i = 789 十进制数 $j = -456 十进制数负数 $m = 0123 八进制数 $n = 0xf2 十六进制数 3.2.3 浮点型 浮点型 (float 或 double) 也叫浮点数, 又称单精度数 (float) 或双精度数 (double) 浮点数是程序中表示小数的一种方法 在 PHP 中, 通常使用标准格式和科学计数法格式表示浮点数 例如 : $num1 = 123 45 $num2 = -0 6789 $num3 = 12345E2 $num4 = -6 789E-1 标准格式表示的浮点数标准格式表示的浮点数科学计数法格式表示的浮点数科学计数法格式表示的浮点数 3.2.4 字符串类型 字符串类型 (string) 是由连续的字母 数字或字符组成的字符序列 在 PHP 中, 通常 使用单引号或双引号表示字符串类型 使用单引号时, 字符串只对 ' 和 \ 进行转义 ; 使 用双引号时, 字符串支持多种转义字符 PHP 转义字符如表 3.2 所示 表 3.2 PHP 转义字符 转义字符 含 义 转义字符 含 义 \n 换行 \f 换页 \r 回车 \\ 反斜线 \t 水平制表符 \$ 美元符号 \v 垂直制表符 \" 双引号 \e Escape \x 十六进制字符 例 3.2 使用单引号和双引号定义字符串, 输出转义字符 代码如下 : $str1 = 'Welcometo ' $str2 = "PHP" echo 'Welcometo ' $str2 echo $str1.$str2; 另起一行 39 第 3 章

PHP+MySQL 网站开发与实践教程 40 echo" 输出一个反斜线 \\" echo" 输出美元符号 \$" echo" 输出双引号 \"" echo" 输出一个十六进制字符 \x41" 程序运行结果如图 3.2 所示 注意 : 在使用 echo 输出字符串时, 可以使用英文句号. 连接字符串 变量或常量, 还可以使用英文逗号, 进行连接 3.2.5 数组类型 PHP 中的数组可以是一维数组 二维数组或者图 3.2 输出转义字符多维数组, 其中的元素也可以为多种数据类型, 如整型 浮点型 字符串类型或者布尔类型, 还可以是数组类型 (array) 或者对象类型 有关数组的具体内容将在第 6 章详细介绍 3.2.6 对象类型 对象 (object) 是面向对象中的一种复合数据类型, 对象就是类的具体化实例 对象是存储数据和有关如何处理数据的信息的数据类型 在 PHP 中, 必须明确地声明对象 3.2.7 资源类型 资源 (resource) 是 PHP 特有的一种特殊数据类型, 用于表示一个 PHP 的外部资源, 如一个数据库的访问操作或者打开保存文件操作 PHP 提供了一些专门的函数, 用于建立和使用资源 3.2.8 空类型 空类型 (NULL) 只有一个值 NULL 在 PHP 中, 如果变量未被赋值或变量被 unset() 函数处理后, 其值就是 NULL 3.2.9 数据类型转换 PHP 中可以通过类型转换改变变量的数据类型 PHP 中数据类型转换分为两类 : 自动类型转换和强制类型转换 1. 自动类型转换自动类型转换是将变量自动转换为最适合的类型, 它可以直接进行转换, 而不必使用函数, 或者在变量前添加变量操作符 自动类型转换是将范围小的类型转换为范围大的类型

例 3.3 在 PHP 中分别声明整型的 $i 变量和字符串类型的 $str 变量, 将这两个变量 相减, 并输出结果 代码如下 : $i = 456 $str ="123" echo $i - $str 执行程序, 输出结果为 333 这表明程序在执行时, 已经自动将字符串类型 $str 变量的值转换为整型的值 2. 强制类型转换强制类型转换是指将一个变量强制转换为与原类型不相同的另一种类型的变量 强制类型转换需要在代码中明确地声明需要转换的类型 一般情况下, 强制转换可以将取值范围大的类型转换为取值范围小的类型 PHP 数据类型强制转换可以使用以下几种方式 (1) 利用强制类型转换可以转换为指定的数据类型 其基本语法格式如下 : 类型名变量或表达式 其中, 类型名包括 int bool float double real string array object, 类型名两边的括号 一定不能丢 例如 : $a=10 $b= bool $a $c= int $a $d= float $a $e= double $a $f= real $a $g= array $a $h= object $a 转换为 bool 数据类型转换为 int 数据类型转换为 float 数据类型转换为 double 数据类型转换为 real 数据类型转换为 array 数据类型转换为 object 数据类型 (2) 利用类型转换函数转换为指定的数据类型 常用的函数有 :intval() floatval() 和 strval() 其中,intval() 表示将变量强制转换为整型数据类型 ;floatval() 表示将变量强制 转换为浮点型数据类型 ;strval() 表示将变量强制转换为字符串数据类型 例如 : $a= 123 $b="123 abc" $c= intval $b 转换为整型数据类型 123 $d= floatval $b 转换为浮点型数据类型 123 $e= strval $a 转换为字符串数据类型 "123" (3) 利用通用类型转换函数转换为指定的数据类型 setype() 函数可以将指定的变量 转换为指定的数据类型 其基本语法格式如下 : 41 第 3 章

PHP+MySQL 网站开发与实践教程 settype 变量或表达式 " 指定的数据类型 " 42 setype() 函数中, 指定的数据类型有 7 个可取值 :bool int float string array object 和 nul 如果转换成功, 则返回结果为 1(true), 否则返回结果为 0(false) 例 3.4 使用 setype() 函数转换指定的数据类型 代码如下 : $a= 123 $b="123 abc" $c= true echosettype $a "string" echosettype $b "int" echosettype $c "string" 执行程序, 输出三行的结果, 每行都为 1, 表示 true 这表明数据类型转换成功 注意 : 使用强制类型转换将浮点数转换为整数时, 将自动舍弃小数部分, 只保留整数部 分 ; 其他转换规则遵循自动转换的规则 3.3 常量与变量 常量和变量是 PHP 要处理的基本的数据对象 常量中最典型的一个例子 3.3 节就是圆周率 3.14, 常量的值在程序运行前后是不会改变的 而变量是为了在程序运行过程中暂时保存一些中间结果, 它的值在程序运行过程中是可以改变的 3.3.1 变量的声明与赋值 变量是指程序运行过程中其值可以变化的量, 变量包含变量名 变量值和变量数据类型三要素 PHP 的变量是一种弱类型变量, 即 PHP 变量无特定数据类型, 不需要事先声明, 并可以通过赋值将其初始化为任何数据类型, 也可以通过赋值随意改变变量的数据类型 1. 变量的声明变量用于存储值, 如数字 字符串或数组 在 PHP 中变量必须由 $ 符号开始, 其基本语法格式如下 : $ 变量名 = 变量的值 其中变量名的命名规则与标识符的命名规则相同 例如 : $str1 = 'hello' $_int = 123 $bool6 = true $6_name = "PHP" $@pro = 1 合法的变量名合法的变量名合法的变量名非法的变量名非法的变量名

2. 变量的赋值 PHP 中变量的赋值方式有传值赋值和引用赋值两种 (1) 传值赋值变量默认为传值赋值 将一个表达式的值赋予一个变量时, 整个原始表达式的值被赋值到目标变量 当一个变量的值赋予另外一个变量时, 改变其中一个变量的值, 不会影响到另外一个变量 例 3.5 传值赋值方式的使用 代码如下 : $price= 3 $cost=$price $price=10 echo $cost 程序运行结果如图 3.3 所示 (2) 引用赋值引用赋值是 PHP 提供的另外一种给变量赋值的方式 引用赋值方式相当于给变量起一个别名, 当一个变量的值发生改变时, 另一个变量也随之变化 使用时只需要在要赋值的变量前添加 & 符号即可 例 3.6 引用赋值方式的使用 代码如下 : $price= 3 $cost =&$price $price=10 echo $cost 在要赋值的变量 $price 前添加 & 符号 程序运行结果如图 3.4 所示 图 3.3 传值赋值方式的使用图 3.4 引用赋值方式的使用 3.3.2 可变变量 可变变量是一种特殊的变量, 这种变量的名称不是预先定义的, 而是动态地设置和使用的 可变变量一般是使用一个变量的值作为另一个变量的名称, 所以可变变量又称为变量的变量 可变变量直观上看就是在变量名前加一个 $ 符号 43 第 3 章

PHP+MySQL 网站开发与实践教程 44 例 3.7 可变变量的使用 代码如下 : $str1 = 'scripting' $$str1 = 'language' echo"$str1 $ $str1" echo"$str1 $scripting" 在变量 $str1 前添加 $ 符号 以上代码,$str1 被赋值 scripting, 则 $$str1 相当于 $scripting 所以当 $$str1 被赋值 language 时, 输出 $scripting 就得到 language 这就是可变变量 因此 echo"$str1 ${$str1}" 语句输出的结果与 echo"$str1 $scripting" 语句输出的结果完全相同, 都会输出 scriptinglanguage 程序运行结果如图 3.5 所示 注意 : 在 PHP 的函数和类的方法中, 超全局变量不能用作可变变量 $this 变量也是一个特殊变量, 不能被动态引用 3.3.3 常量 常量是指程序运行过程中其值不能改变的量 常量通常直接书写, 如 123-45.6 "ABC" 在 PHP 中通常使用 define() 函数或 const 关键字来定义常量 1.define() 函数 PHP 通过 define() 函数定义常量, 其基本语法格式如下 : define" 常量名 " 常量值例 3.8 使用 define() 函数定义常量, 计算圆的面积 代码如下 : define"pi" 31415926 $radius = 5 $area=pi*$radius*$radius echo" 圆的面积是 ""$area" 定义常量 PI 程序运行结果如图 3.6 所示 图 3.5 可变变量的使用图 3.6 计算圆的面积 2.const 关键字 PHP 还可以通过 const 定义常量, 其基本语法格式如下 : const 常量名 = 常量值

例 3.9 使用 const 定义常量, 计算圆的面积 代码如下 : constpi = 31415926 $radius = 5 $area=pi*$radius*$radius echo" 圆的面积是 ""$area" 定义常量 PI 写的 程序运行结果如图 3.6 所示 注意 :PHP 常量命名与标识符的命名遵循同样的命名规则, 并且常量标识符通常是大 3.4 运算符与表达式 3.4 节 PHP 包含多种类型的运算符, 常见的运算符有 : 算术运算符 字符串运算符 赋值运算符 比较运算符和逻辑运算符等 与之对应的表达式有 : 算术表达式 字符串连接表达式 赋值表达式 关系表达式 逻辑表达式 位运算表达式和条件表达式等 3.4.1 运算符 1. 算术运算符算术运算符主要用于处理算术运算操作, 常用的算术运算符如表 3.3 所示 表 3.3 常用的算术运算符 运 算 符 含 义 运 算 符 含 义 + 加法运算符 % 取余运算符 - 减法运算符 ++ 自增运算符 * 乘法运算符 -- 自减运算符 / 除法运算符 例 3.10 算术运算符用法实例 代码如下 : $int1 = 17 $int2 = 5 echo"$int1" " + ""$int2" "=" 加法运算 echo $int1 + $int2 " br " echo $int1 " - " $int2 "=" 减法运算 echo $int1 - $int2 " br " echo $int1 " * " $int2 "=" $int1 * $int2 乘法运算 echo $int1 " " $int2 "=" $int1 $int2 除法运算 echo $int1 " % " $int2 "=" $int1 % $int2 echo $int1++ " ++ =" $int1 取余运算 自增运算 45 第 3 章

PHP+MySQL 网站开发与实践教程 echo $int2-- " -- =" $int2 自减运算 46 程序运行结果如图 3.7 所示 2. 字符串运算符字符串运算符的作用是将两个字符串连接起来组成一个字符串, 使用. 来完成 如果有一个操作数或两个操作数都不是字符串类型, 那么先将操作数转换成字符串, 再执行字符串运算操作 例 3.11 字符串运算符用法实例 代码如下 : $str1 = " 中华人民 " $str2 = " 共和国 " echo $str1 $str2 字符串运算操作 程序运行结果如图 3.8 所示 图 3.7 算术运算符图 3.8 字符串运算符 3. 赋值运算符 赋值运算符的作用是对变量赋值 赋值运算符如表 3.4 所示 表 3.4 赋值运算符 运 算 符 含 义 = 将右边的值赋值给左边的变量 += 将左边的值加上右边的值赋值给左边的变量 -= 将左边的值减去右边的值赋值给左边的变量 *= 将左边的值乘以右边的值赋值给左边的变量 /= 将左边的值除以右边的值赋值给左边的变量.= 将左边的字符串与右边的字符串连接赋值给左边的变量 %= 将左边的值对右边的值取余赋值给左边的变量 例 3.12 赋值运算符用法实例 代码如下 : $int1 = 17

$int2 = 5 echo"$int1" " +=" "$int2" " 的值是 " += 赋值运算 echo $int1 + $int2 " br " echo $int1 " -= " $int2 " 的值是 " -= 赋值运算 echo $int1 - $int2 " br " echo $int1 " *= " $int2 " 的值是 " $int1 * $int2 *= 赋值运算 echo $int1 " = " $int2 " 的值是 " $int1 $int2 = 赋值运算 echo $int1 " = " $int2 " 的值是 " $int1 $int2 = 赋值运算 echo $int1 " %= " $int2 " 的值是 " $int1 % $int2 %= 赋值运算 程序运行结果如图 3.9 所示 图 3.9 赋值运算符 4. 比较运算符 比较运算符用来比较其左右两边的操作数 比较运算符如表 3.5 所示 表 3.5 比较运算符 运 算 符 含 义 运 算 符 含 义 == 相等 >= 大于等于! = 不相等 <= 小于等于 > 大于 === 恒等于 < 小于! == 非恒等于 例 3.13 比较运算符用法实例 代码如下 : $int1 = 17 $int2 = 5 echo"$int1" "==" "$int2" " 的结果是 " == 比较运算 echovar_dump $int1 == $int2 输出变量的数值和数据类型 echo $int1 " = " $int2 " 的结果是 " = 比较运算 echovar_dump $int1 = $int2 echo $int1 " " $int2 " 的结果是 " 比较运算 47 第 3 章

PHP+MySQL 网站开发与实践教程 48 echovar_dump $int1 $int2 echo $int1 " " $int2 " 的结果是 " 比较运算 echovar_dump $int1 $int2 echo $int1 " = " $int2 " 的结果是 " = 比较运算 echovar_dump $int1 = $int2 echo $int1 " = " $int2 " 的结果是 " = 比较运算 echovar_dump $int1 = $int2 echo $int1 " === " $int2 " 的结果是 " === 比较运算 echovar_dump $int1 === $int2 echo $int1 " == " $int2 " 的结果是 " == 比较运算 echovar_dump $int1 == $int2 程序运行结果如图 3.10 所示 图 3.10 比较运算符 5. 逻辑运算符 逻辑运算符用来组合逻辑运算的结果 逻辑运算符如表 3.6 所示 表 3.6 逻辑运算符 运算符含义运算符含义! 逻辑非 ( 或 or) 逻辑或 &&( 或 and) 逻辑与 xor 逻辑异或 例 3.14 逻辑运算符用法实例 代码如下 : $bool1 = 1 逻辑真

$bool2 = 0 echo" ""$bool2" " 的结果是 " echovar_dump $bool2 echo $bool1 "&&" $bool2 " 的结果是 " echovar_dump $bool1&& $bool2 echo $bool1 " " $bool2 " 的结果是 " echovar_dump $bool1 $bool2 echo $bool1 "xor" $bool2 " 的结果是 " echovar_dump $bool1xor $bool2 逻辑假逻辑非运算逻辑与运算逻辑或运算逻辑异或运算 程序运行结果如图 3.11 所示 图 3.11 逻辑运算符 6. 按位运算符 按位运算符是指对二进制位从低位到高位对齐后进行逻辑运算 在 PHP 中的按位运 算符如表 3.7 所示 表 3.7 按位运算符 运 算 符 含 义 运 算 符 含 义 & 按位与 ~ 按位取反 按位或 向左移位 按位异或 向右移位 例 3.15 按位运算符用法实例 代码如下 : $int1 = 7 7 的二进制数是 111 $int2 = 5 5 的二进制数是 101 echo"$int1" "&" "$int2" " 的结果是 " echo $int1& $int2 " br " 按位与运算二进制结果是 101 echo $int1 " " $int2 " 的结果是 " echo $int1 $int2 " br " 按位或运算二进制结果是 111 echo $int1 " " $int2 " 的结果是 " 49 第 3 章

PHP+MySQL 网站开发与实践教程 50 echo $int1 $int2 " br " 按位异或运算二进制结果是 10 echo" ~ " $int2 " 的结果是 " echo ~ $int2 " br " 按位取反运算二进制结果是 11111010 echo $int1 " 2 的结果是 " echo $int1 2 " br " 向右移 2 位运算二进制结果是 1 echo $int2 " 1 的结果是 " echo $int2 1 " br " 向左移 1 位运算二进制结果是 10 程序运行结果如图 3.12 所示 7. 三元运算符 三元运算符的作用是提供简单的逻辑判断, 其基本语法格式如下 : 条件表达式表达式 1 表达式 2 如果条件表达式的结果为 true, 则返回表达式 1 的值, 否则返回表达式 2 的值 例 3.16 三元运算符用法实例 代码如下 : $int1 = 7 $int2 = 5 echo"$int1" "" "$int2" echo $int1 $int2 " 正确 " " 错误 " 三元运算 echo $int1 "" $int2 echo $int1 $int2 " 正确 " " 错误 " " br " 程序运行结果如图 3.13 所示 图 3.12 按位运算符图 3.13 三元运算符 8. 运算符的优先级与结合规则运算符的优先级是在表达式中各个运算符参与运算的先后顺序 ; 运算符的结合性指定相同优先级运算符的运算顺序 运算符的结合性可以有两个方向, 即从左到右或从右到左 从左到右的结合性表示同级运算符的执行顺序为从左到右 ; 从右到左的结合性表示同级运算符的执行顺序为从右到左 表 3.8 中列出了 PHP 支持的运算符的完整列表, 表中的运算符是按照优先级从高到低的顺序排列的

表 3.8 运算符的优先级 优先级结合方向运算符 1 非结合 new 2 从左到右 [ 3 从右到左 ++ -- ~ (int)(float)(string)(array)(object)(bool)@ 4 非结合 instanceof 5 从右到左! 6 从左到右 * / % 7 从左到右 + -. 8 从左到右 9 非结合 ==! = ===! == <> 10 从左到右 & 11 从左到右 12 从左到右 13 从左到右 && 14 从左到右 15 从左到右?: 16 从右到左 = += -= *= /=.= %= &= = = = = => 17 从左到右 and 18 从左到右 xor 19 从左到右 or 20 从左到右, 注意 : 在表达式中, 还有一个优先级最高的运算符是小括号 (), 它可以提升其内运算符的优先级 3.4.2 表达式 表达式就是由常量 变量和运算符组成的符合语法要求的式子 在 3.4.1 小节中介绍运算符的时候, 已经涉及了一些表达式 例如算术表达式 (13-5 *17) 字符串表达式 ("abc"."web") 赋值表达式 ($int1+ = $int2) 关系表达式 (i= =23) 和逻辑表达式 ($bool1 $bool2&&$bool3) 在本书后面章节中介绍的数组 函数 对象等都可以成为表达式的一部分 课堂实践 3-1: 基本语法综合应用 课堂实践 3-1 (1) 利用预定义变量, 接收用户输入的内容 代码如下 : $_POST 后面加上 username 将字符串放在中括号里面就得到了表单里面的 inputtype= "text"name="username" 的值 echo" 用户名 " $_POST 'username' echo" 密码 " $_POST 'pwd' 51 第 3 章

PHP+MySQL 网站开发与实践教程 (2) 利用预定义常量, 查看当前使用的 PHP 版本 代码如下 : 52 echo" 当前使用的 PHP 版本是 " PHP_VERSION 预定义常量 程序运行结果如图 3.14 所示 (3) 判断某年是否为闰年 代码如下 : $year1 = 2018 $year2 = 2020 echo"$year1" " 年 " 符合闰年条件能被 4 整除但不能被 100 整除或能被 4 整除又能被 400 整除 echo $year1 %4==0 && $year1 %100 =0 $year1 %400 ==0 " 是闰年 "" 不是闰年 " echo"$year2" " 年 " echo $year2 %4==0&& $year2 %100 =0 $year2 %400 ==0 " 是闰年 "" 不是闰年 " 程序运行结果如图 3.15 所示 图 3.14 查看当前 PHP 的版本图 3.15 判断某年是否为闰年 3.5 本章小结 本章介绍了 PHP 基础知识, 包括基本数据类型 PHP 的变量与常量 PHP 的运算符和表达式等相关内容 ; 读者应重点掌握运算符和表达式, 因为数据处理离不开运算符和表达式 ; 还应注意, 当表达式中有多种运算符时, 应按运算符的优先级和结合原则进行运算 3.6 思考与实践 1. 选择题 (1)PHP 的输出语句是 ( ) A.outṗrint B.response.write C.echo D.scanf (2)PHP 的中标量类型中整型类型的英文单词是 ( ) A.boolean B.string C.float D.integer

(3)PHP 的变量在声明和使用的时候变量名前必须加 ( ) A.$ B.% C.& D.# (4)PHP 的转义字符 反斜线 是 ( ) A.\n B.\r C.\t D.\\ (5) 以下 ( ) 不是 PHP 的标记风格 A.?.? B.?.? C. %.% D. +.+ (6) 以下 ( ) 注释风格是 PHP 的多行注释 A.//. B./*.*/ C.#. D.!.! (7)PHP 中的逻辑与运算符是 ( ) A.& B.or C. D.&& (8) 在?: 运算符当中, 条件表达式应该写在 ( ) 位置 A.? 号前面的位置 B.? 号后面,: 号前面的位置 C.: 号后面的位置 D.?: 不是运算符 (9) 以下不正确的 PHP 变量名是 ( ) A.$helo_hohhot B.$_helohohhot C.$9helohohhot D.$helohohhot (10)$_GET['id'] 表示的含义是 ( ) A. 接收 URL 传递过来的参数 id 的值 B. 获取表单使用 post 方法提交的值 C. 发送参数给其他页面 D. 以上说法都不正确 (11)PHP 中正确的常量定义语句是 ( ) A.$age=20; B.define $AGE=20; C.define("AGE",20); D.define(AGE=20); (12) 以下不属于 PHP 数据类型的是 ( ) A. 字符串型 B. 日期类型 C. 浮点型 D. 空类型 (13)PHP 运算符中, 优先级从高到低分别是 ( ) A. 关系运算符, 逻辑运算符, 算术运算符 B. 算术运算符, 关系运算符, 逻辑运算符 C. 逻辑运算符, 算术运算符, 关系运算符 D. 关系运算符, 算术运算符, 逻辑运算符 (14)PHP 中字符串的连接运算符是 ( ) A.- B.+ C.& D.. (15) 运算符 的作用是 ( ) A. 无效 B. 乘方 C. 位非 D. 位异或 (16) 运算符 "%" 的作用是 ( ) A. 无效 B. 取整 C. 取余 D. 除 2. 填空题 (1)PHP 的运算符有算术运算符 ( ) ( ) ( ) ( ) 按位运算符和三元 运算符 (2)PHP 的单行注释是 ( ) 53 第 3 章

PHP+MySQL 网站开发与实践教程 54 (3) 数据类型转换有 ( ) 和 ( ) (4) 表达式 31 2 的结果是 ( ) 3. 实践题 (1) 写出一元二次方程 ax 2 +bx+c=0 的 PHP 表达式 (2) 编写程序, 定义圆周率常量, 计算圆的周长和面积