第3章 PHP表达式.

Slides:



Advertisements
Similar presentations
分享人:張益源. 個人資料介紹 姓名:張益源 畢業:體育系 97 級 專長:田徑、籃球、游泳 任教學校:慈濟大學實驗國民小學 學校職務:體育兼資訊老師.
Advertisements

许瑞云医师 你已经很努力地注意饮食、作息、运动, 为什么身体还不能恢复健康 ? 细节 答案就在「 细节 」裡, 唯有掌握关键的一步, 养生才能达到真 正的功效 ! 现在就让我们跟着曾是全球知名的哈 佛医院主治医师的许瑞云, 学习最正确 的养生方法, 轻松打下健康满分的基础 !
第二框 生命科技与生命伦理.
职业指导服务系统 欢迎了解职业指导服务系统!
第 4 章 PHP 基本語法.
电子成绩单项目实现.
第四讲 组织结构与人员配置 复旦大学管理学院 芮明杰教授
第二节 留 数 一、留数的引入 二、利用留数求积分 三、在无穷远点的留数 四、典型例题 五、小结与思考.
提高自身素质做好 新时期班主任工作 北京市广渠门中学 高金英.
拉萨属高原温带半干旱季风气候,平均海拔3658米,年日照3000多小时,素有“日光城”、“太阳城”的美誉。年最高气温29℃,最低气温零下16
普通话模拟测试 与学习平台 使用指南.
香港普通話研習社科技創意小學 周順強老師.
第三单元 单元写作学案 确立自信 学习反驳.
——奧科特公開及內部培訓 系列課程(三)之十一
MVC Servlet与MVC设计模式.
新竹縣博愛國民中學 曾琳富 學校整合模組(School) 安裝與使用 新竹縣博愛國民中學 曾琳富
網路小說劇情建構與伏線營造 Windows98.
闲言碎语.
二十 石钟山记.
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
输出数组 Result: Array (     [0] => zzu     [1] => php     [2] => MySQL     [3] => javascript     [4] => html     [5] => css )
关于整合检验检测认证机构实施意见的通知(国办发〔2014〕8号)
第一章 语言文字运用 专题五  挖掘隐含信息,准确实现图文转换.
新疆自治区“十二五”科技发展 规划编制工作
推进德育创新 做好新时期班主任工作 北京市广渠门中学 高金英.
经 络 学.
数据结构与算法 数据结构与算法实验
CDM Project Management Database Development
Ch07 PHP程式基礎 網頁程式設計.
ASP VBScript 基础知识.
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 9 章 常數.
【PHP程式設計】 實作一:計算BMI.
第四章 網頁表單與資料傳遞.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
Ch13 存取MySQL資料庫 實作:會員管理系統
PHP 5 入門基礎 第一個PHP 程式 PHP 資料型態.
第5章 PHP数组.
数据库实验指导(一)
Cookie 存取Cookie Cookie有效時間 Session 存取Session session 函數
進階 WWW 程式設計 -- PHP Regular Expression 靜宜大學資訊管理學系 蔡奇偉副教授 2004
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 18 章 Cookie和 Session.
檔案上傳 所謂檔案上傳,就是將檔案由客戶端的主機,藉 由瀏覽器傳送到伺服器的資料夾上。
PHP 程式流程控制結構.
認識FTP檔案傳輸協定 建立我的部落格 Archie檔案檢索服務 Google搜尋密技 歷久彌新的老朋友-BBS Skype網路電話
复习 JavaScript && ES6 专题 (1) 2017/3/10 – Payne
變數命名 保留字(Reserved Word)
——网鸟老兵系列课程之10天掌握MongoDB
Cookie 存取Cookie Cookie有效時間 Session 存取Session session 函數
PHP 變數、常數與運算子 變數 常數 運算子
第 10 章 数据库编程.
语义分析概述 符号表 第六章 语义分析.
第一节 大数定律 一、问题的引入 二、基本定理 三、典型例题 四、小结.
進階 WWW 程式設計 -- PHP 語言結構 靜宜大學資訊管理學系 蔡奇偉副教授 2003
架站實做—AppServ
作業系統 第三章 作業系統結構.
PHP编程基础与实例教程 PHP Fundamentals & Practices
Ch09 在網頁之間傳遞資訊 網頁程式設計.
Ch04 VB.NET的流程控制 網頁程式設計.
第六章 迴圈與陣列.
交際障礙分組系統 交際障礙分組系統 班級:2439 組員: 組別:A01 林子婷 資訊三丁 D
17 無母數統計檢定  學習目的.
第二章 Java语法基础.
第2章 JavaScript语言基础 2.1 数据类型、常量及变量.
第二章 Java基本语法 讲师:复凡.
PHP程式設計 五、程式流程控制結構 建國科技大學 資訊管理學系 饒瑞佶.
進階 WWW 程式設計 -- PHP Array 靜宜大學資訊管理學系 蔡奇偉副教授
第2章 Java语言基础.
第6章 PHP基本語法介紹.
Chapter 2 Entity-Relationship Model
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
Presentation transcript:

第3章 PHP表达式

PHP表达式 PHP表达式是PHP程序最为重要的组成部分,它指的是将相同数据类型或不同数据类型的数据(如变量、常量、函数等),用运算符号按一定的规则连接起来的、有意义的式子。

3.1 常量 3.1.1 自定义常量 语法格式:define(name,value[, boolean case_insensitive]) 功能:定义一个名字为name,值为value的常量。case_insensitive参数的默认值为FALSE,表示常量名name大小写敏感;值为TRUE,表示常量名name大小写不敏感。 说明:常量名name为字符串类型数据,常量值value必须是标量数据类型数据。 注意:常量名前面不加前缀“$”符号 。 常量的作用域是全局的,可以在程序任意位置进行定义和使用常量。 常量一旦被定义,其值不能在程序过程中修改,也不能被销毁。

3.1.2 常量的内存分配 内存中专门为常量的存储分配了一个空间:常量存储区。在程序运行期间不能修改和销毁。 3.1.2 常量的内存分配 内存中专门为常量的存储分配了一个空间:常量存储区。在程序运行期间不能修改和销毁。 例如程序define.php <?php //定义DATABASE常量,此时DATABASE常量名大小写敏感 define("DATABASE","student"); //定义USER_NAME常量,此时USER_NAME大小写敏感 define("USER_NAME","root",FALSE); //定义PASSWORD常量,此时PASSWORD大小写不敏感 define("PASSWORD","root",TRUE); echo DATABASE;//输出:student echo "<br/>"; echo USER_NAME;//输出:root echo password;//输出:root ?>

3.1.3 预定义常量 PHP还预定义了许多常量,这些常量无需使用define()函数定义,可直接在程序中使用。 (1)__FILE__(FILE前后是两个下划线):当前正在处理的脚本文件名。 (2)__LINE__(LINE前后是两个下划线):正在处理的脚本文件的当前行数。 (3)PHP_VERSION:当前 PHP预处理器的版本,如'5.3.0'。 (4)PHP_OS:PHP所在的操作系统的类型,如'Linux'。 (5)TRUE:表示逻辑真;FALSE常量:表示逻辑假;NULL常量:表示没有值或值不确定。 (6)DIRECTORY_SEPARATOR常量:表示目录分隔符,Unix或Linux操作系统环境时的值为“/”;Windows操作系统环境时的值为“\”。

3.2 变量 3.2.1 变量基本概念 变量是用于临时存储数据的容器,这些数据可以是任意一种数据类型的数据。PHP中的变量名遵循以下规则: (1)变量名必须以美元符号($)开头,例如:$userName。 (2)变量名的第一个字符必须是字母或下划线(不能是数字),变量名称可以包含字母、数字和下划线的组合。 (3)PHP中的变量名是区分大小写的,这是一个非常重要的规则。这意味着$userName和$UserName是截然不同的两个变量。 例如:程序variable.php <?php //以下语句修改$userName变量的值 $userName = "张三"; $userName = "李四"; //以下语句既修改$sex变量的值,又修改了$sex变量的数据类型 $sex = FALSE; $sex = "男"; ?>

3.2.2 变量的内存分配

3.2.3 变量赋值方式 (1)传值赋值方式 (2)传地址赋值方式 例如程序byValue.php: <?php $age1 = 18; //以下语句进行传值赋值,变量$age1的值18赋值给变量//$age2 $age2 = $age1; //以下语句修改变量$age2的值,此时变量$age2在内存中//开辟新的空间存储值20 $age2 = 20; echo $age1;//该语句输出$age1变量的值为18 echo "<br/>"; echo $age2;//该语句输出$age2变量的值为20 ?> 3.2.3 变量赋值方式 (1)传值赋值方式 (2)传地址赋值方式 例如程序byReference.php : <?php $age1 = 18; //以下语句进行传值赋值,变量$age1的值18赋值给变量//$age2 $age2 = &$age1; //以下语句修改变量$age2的值,此时变量$age2在内存中//开辟新的空间存储值20 $age2 = 20; echo $age1;//该语句输出$age1变量的值为20 echo "<br/>"; echo $age2;//该语句输出$age2变量的值为20 ?>

3.2.4 可变变量 PHP提供了一种特殊类型的变量:可变变量。可变变量允许PHP程序动态地改变一个变量的变量名,可变变量的工作原理是用一个变量的“值”作为另一个变量的“名”。 例如程序variableNameChanged.php : <?php $varname = "age"; //用$$varname取代$age。下面的代码等价于:$age = 20; $$varname = 20; echo $age; //输出$age变量的值:20 ?>

3.3 有关变量或常量状态的函数 3.3.1 数据类型查看函数 (1)gettype()函数 语法格式:string gettype ( mixed var ) 函数功能:gettype()函数需要变量名(带$符号)或常量名作为参数,该函数返回变量或常量的数据类型,这些数据类型包括:integer、double、string、array、object、unknown type等。 (2)var_dump()函数 语法格式:void var_dump (mixed var ) 函数功能:var_dump()函数需要传递一个变量名(带$符号)或常量名作为参数,该函数可以得到变量或常量的数据类型以及对应的值,并将这些信息输出。 函数说明:调试程序时,经常使用var_dump()函数查看变量或常量的值、数据类型等信息。

3.3.2 检查常量或变量是否定义函数 (1)defined()函数 语法格式:bool defined ( string name ) 函数功能:检查常量是否经过define()函数定义。该函数参数为常量名(注意常量名必须带双引号或单引号),如果常量经过define()函数定义,该函数返回布尔值TRUE,否则返回FALSE。 (2)isset()函数 语法格式:bool isset ( mixed var ) 函数功能:检查变量var是否定义。该函数参数为变量名(带$号),如果变量已经定义,该函数返回布尔值TRUE,否则返回FALSE。

3.3.3 取消变量定义unset()函数 语法格式:void unset ( mixed var )

3.3.4 检查变量是否为“空” (1)empty()函数 语法格式:boolean empty ( mixed var ) 函数功能:用于检查变量var是否为“空”,该函数参数var为变量名(带$号)。如果变量var为空,则empty()函数返回TRUE,否则返回FALSE。 注意:使用empty()函数时,变量为“空”的意义为:若变量var的值为“”、0、“0”、0.0、NULL、FALSE或array(),都将视为空。 empty() 函数只用于检测变量是否为“空”,传递其它参数都将造成程序解析错误。

(2)is_null()函数 语法格式:boolean is_ null( mixed var ) 函数功能:检查变量var是否为NULL,如果值为NULL则返回 TRUE,否则返回 FALSE。 函数说明:is_null()函数在用于判断变量是否为NULL时,可以看做是isset()函数的反函数。下面的三种情况变量的值为NULL。 a.变量未经定义; b.变量的值赋值为NULL; c.变量经unset()函数处理后;

3.3.5 数据类型检查函数 函数名 功能 语法格式 is_bool 检测变量或常量是否是布尔型 bool is_bool( mixed var ) is_string 检测变量或常量是否是字符串 bool is_string( mixed var ) is_int is_integer is_long 检测变量或常量是否是整数 bool is_int( mixed var ) is_double is_float is_real 检测变量或常量是否是浮点型 bool is_float( mixed var ) is_numeric 检测变量或常量是否为数字或数字字符串 bool is_numeric( mixed var )  is_scalar 检测变量或常量是否是标量数据类型 bool is_scalar( mixed var ) is_array 检测变量是否是数组 bool is_array( mixed var ) is_object 检测变量是否是一个对象 bool is_object( mixed var ) is_resource 检测变量是否为资源类型 bool is_resource( mixed var )

3.4 PHP运算符 3.4.1 算术运算符 运算符名称 用 法 结 果 取反 -$a $a 的负值。 加法 $a + $b 用 法 结 果 取反 -$a $a 的负值。 加法 $a + $b $a 和 $b 的和。 减法 $a - $b $a 和 $b 的差。 乘法 $a * $b $a 和 $b 的积。 除法 $a / $b $a 除以 $b 的商。 取余 $a % $b $a 除以 $b 的余数。

3.4.2 递增/递减运算符 运算符名称 用法 运行过程 前加 ++$a $a的值加一,然后返回$a。 后加 $a++ 前减 --$a $a的值减一,然后返回 $a。 后减 $a-- 返回$a,然后将$a的值减一。

3.4.3 赋值运算符 赋值运算符“=”是将“=”右边表达式的值赋给左边的变量。赋值运算符产生的表达式为赋值表达式,该表达式的值为“=”左边的变量值。PHP还提供适合于所有二元算术养生法和字符串运算符的“组和运算符”:+=,-=, *=, /=, %=, .=等。这样可以在一个表达式中使用一个值(如$y)并把表达式的结果赋给它。 PHP组合运算符 等价格式 $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 $x .= $y $x = $x . $y ....

3.4.4 比较运算符 运算符名称 用法 比较结果 等于 $a == $b(注意是两个等号) 如果$a与$b的值相等,结果为TRUE;否则为FALSE。 全等 $a === $b(注意是三个等号) 如果$a与$b的值相等,且它们的类型也相同,结果为TRUE;否则为FALSE。 不等 $a != $b 如果$a与$b的值不相等,结果为TRUE;否则为FALSE。 $a <> $b 非全等 $a !== $b(注意是两个等号) 如果$a与$b的值不相等,或者它们的数据类型不同,结果为TRUE;否则为FALSE。 小与 $a < $b 如果 $a的值小于 $b的值,结果为TRUE;否则为FALSE。 大于 $a > $b 如果 $a的值大于 $b的值,结果为TRUE;否则为FALSE。 小于等于 $a <= $b 如果 $a的值小于等于 $b的值,结果为TRUE;否则为FALSE。 大于等于 $a >= $b 如果 $a的值大于 等于$b的值,结果为TRUE;否则为FALSE。

3.4.5 逻辑运算符 运算符名称 用法 结果 逻辑与 $a && $b 如果$a与$b的值都为TRUE,结果为TRUE;否则为FALSE $a and $b 逻辑或 $a || $b 如果$a与$b的值有一个为TRUE,结果为TRUE;否则为FALSE $a or $b 逻辑非 ! $a 如果$a的值为TRUE,结果为FALSE;否则为TRUE 逻辑异或 $a xor $b 如果$a与$b的值中只有一个值为TRUE,结果为TRUE;否则为FALSE

3.4.6 字符串连接运算符 字符串连接运算符只有一个点运算符“.”,使用“.”运算符可以将两个字符串连接成一个字符串。

3.4.7 错误抑制运算符 1.安全:避免错误信息外露,造成系统漏洞。 2.美观:避免浏览器页面出现错误信息,影响页面美观。 当PHP表达式产生错误而又不想将错误显示在页面上时,可以使用错误抑制运算符“@”。将“@”运算符放置在PHP表达式之前,该表达式产生的任何错误信息将不会输出。这样做有两个好处: 1.安全:避免错误信息外露,造成系统漏洞。 2.美观:避免浏览器页面出现错误信息,影响页面美观。

3.4.8 条件运算符 条件运算符的语法格式为: 表达式1?表达式2:表达式3 由条件运算符组成的表达式称为条件表达式,条件表达式的执行过程为:如果表达式1 的值为TRUE,则整个条件表达式的值为表达式2的值;如果表达式1 的值为FALSE,则整个条件表达式的值为表达式3的值。条件运算符中有三个操作数,因此条件运算符为三目运算符。

3.4.9 类型运算符 PHP5提供了类型运算符instanceof,该运算符用于判断一个对象是否是某个类的对象。

3.4.10 执行运算符 执行运算符使用反引号(`)(注意这不是单引号!一般是键盘上ESC下面的按键)。执行运算符将尝试将反引号中的字符串内容作为操作系统系统命令来执行(例如:linux的shell命令或Windows的DOS命令),并返回该系统命令的执行结果。

3.4.11 位运算符 运算符名称 用法 结果 与操作符:& $a & $b $a与$b位值都为1时,结果为1;否则为0。 或操作符:| 异或操作符:^ $a ^ $b $a与$b位值中只有一个为1时,结果为1;否则为0 非操作符:~ ~$a $a中为0的位,结果为1;$a中为1的位,结果为0。 右移操作符:>> $a >> $b $a中的位向左移动$b次(每一次移动都表示$a乘以2) 左移操作符:<< $a << $b $a中的位向右移动$b次(每一次移动都表示$a 除以2)

<,<=,>,>= 3.4.12 运算符优先级 由高优先级到低优先级运算符 ( ) !,~,++,-- *,/,% +,-,. <<,>> <,<=,>,>= ==,!=,===,!== & ^,| &&,|| ?: =,+=,-=,*=,/=,%=,.= and,xor,or

3.5 数据类型的转换 3.5.1 类型自动转换 类型自动转换是指:在定义变量或常量时,不需要指定变量或常量的数据类型,由PHP预处理器根据具体应用环境,将变量或常量转换为合适的数据类型。 类型自动转换基本规则如下: (1)布尔型数据参与算术运算时,TRUE被转换为整数1,FALSE被转换为整数0;NULL参与算术运算时,被转换为整数0。 (2)浮点数与整数进行算术运算时,将整数转换为浮点数后,再进行算术运算。

(3)参与算术运算的字符串,只有以数字开头的字符串才会被认作数字。字符串开头部分符合整数格式时,字符串将被转换为整数,例如在执行算术运算时字符串”3rd degree” 将被转换为整数3;字符串开头部分符合浮点数格式时(字符串开头中可以包含‘.’、 ‘e’或‘E’字符),字符串会被转换为浮点数,例如在执行算术运算时字符串“3.5”、“-4.01”、“4.2e6”、“-4.1 degree”分别被转换为浮点数:3.5、-4.01、4200000、-4.1。如果字符串不是以数字开头,将被转换整数0,例如在执行算术运算时,字符串“Catch 22”将被转换为数整数0。

(4)在进行字符串连接运算时,整数、浮点数将被转换为字符串类型数据。例如12、12. 3 转换为字符串后为:"12"、"12 (4)在进行字符串连接运算时,整数、浮点数将被转换为字符串类型数据。例如12、12.3 转换为字符串后为:"12"、"12.3"。布尔型TRUE将被转换成字符串"1",布尔型FALSE和NULL将被转换成空字符串""。这就解释了为何语句“echo TRUE;”打印到页面上为1,而语句“echo FALSE;”打印到页面上为空字符串。 (5)在进行逻辑运算时,空字符串""、字符串"0"、整数0、浮点数0.0、NULL以及空数组将被转换为布尔型为FALSE;其它数据将被转换为布尔型TRUE(注意字符串"0.0"将被转换为布尔型TRUE)。

3.5.2 类型强制转换 类型强制转换允许程序员手动将变量的数据类型转换成为指定的数据类型。PHP提供了三种类型强制转换方法: (1)在要类型转换的变量或常量之前加上用括号括起来的目标数据类型。 (2)使用类型转换函数:intval()、floatval()、strval()。 (3)使用通用类型转换函数settype() 注意:使用类型强制转换将浮点数转换为整数时,将自动舍弃小数部分,只保留整数部分;其它转换规则遵循自动转换的规则。