从零开始PHP攻略(2)——操作符与迭代整理
目录:
10.操作符
10.1 算术操作符
算术操作符通常用于整型或双精度类型的数据。如果将它们应用于字符串,PHP会试图将这些字符串转换成一个数字。如果其中包含“e”或“E”字符,它就会被当作是科学表示法并被转换成浮点数,否则将会被转换成整数。PHP会在字符串开始处寻找数字,并且使用这些数字作为该字符串的值,如果没找到数字,该字符串的值则为0。
10.2 字符串操作符
可以使用字符串连接操作符将两个字符串连接起来生成并保存到一个新字符串中。
$a = “Bob‘s”; $b = “Auto Parts”; $result = $a.$b; //”Bob’s Auto Parts”
10.3 赋值操作符
10.3.1 赋值运算返回值
整个赋值语句的值将赋给左边的操作数。
可以使用圆括号来提高子表达式的优先级,和数学的计算法则相同。
10.3.2 复合赋值操作符
+=,-=,*=,/=,%=,.=
10.3.3 前置递增递减和后置递增递减运算符
举个例子:
$a=4; echo ++$a; // $a=4; echo $a++; //
10.3.4 引用操作符
引用操作符&可以在关联赋值中使用。看下面的例子:
$a = 5; $b = $a; $a = 7; // $b will still be 5
这就很尴尬了。如何避免上述情况呢?
可以使用引用操作符&来避免产生这样的副本。
$a = 5; $b = &$a; $a = 7; // $a and $b are now both 7
可以通过重置它们来改变所指向的地址:
unset($a);
重置并不会改变$b(7)的值,但是可以破坏$a和值7保存在内存中的链接。
10.4 比较操作符
10.4.1 等于操作符
相等的比较操作符==允许测试两个值是否相等。
10.4.2 其他比较操作符
只有当恒等操作符(===)两边的操作数相等并且具有相同的数据类型时,其返回值才为true。
10.5 逻辑操作符
操作符“and”和“or”比&&和||的优先级要低。
10.6 位操作符
位操作符可以将一个整型变量当作一系列的位来处理。
10.7 其他操作符
逗号操作符“,”用来分隔函数参数和其他列表项。
new用来初始化类的实例。
->用来访问类的成员。
10.7.1 三元操作符
condition ? value if true : value if false
10.7.2 错误抑制操作符
错误抑制操作符@可以在任何表达式前面使用:
$a = @(57/0);
可以抑制除0警告。
如果通过这种方法抑制了一些警告,一旦遇到一个警告,你就要写一些错误处理代码。
如果已经启用了PHP配置文件中的track_errors特性,错误信息将会被保存在全局变量$php_errormsg中。
10.7.3 执行操作符
PHP将试着将反向单引号之间的命令当做服务器端的命令行来执行。
$out = `dir c:`; echo `<pre>`.$out.`</pre>`;
得到一个目录列表并且将该列表保存在$out中,再将该列表显示在浏览器中或用其他方法来处理。
10.7.4 数组操作符
数组元素操作符([])允许访问数组元素。在某些数组上下文中,也可以使用=>操作符。
10.7.5 类型操作符
instanceof操作符允许检查一个对象是否是特定类的实例。
11.计算表单总金额
define('TIREPRICE',100);
define('OILPRICE',10);
define('SPARKPRICE',4);
// create short variable names
$tireqty = $_POST['tireqty'];
$oilqty = $_POST['oilqty'];
$sparkqty = $_POST['sparkqty'];
$totalqty = 0;
$totalqty = $tireqty + $oilqty + $sparkqty;
echo "Items ordered: ".$totalqty."<br />";
$totalamount = 0.00;
$totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE;
echo "Subtotal: $".number_format($totalamount,2)."<br />";
$taxrate = 0.10; // local sales tax is 10%
$totalamount = $totalamount * (1 + $taxrate);
echo "Total including tax: $".number_format($totalamount,2)."<br />";


12.操作符的优先级和结合性
优先级:执行顺序。
结合性:同一优先级的操作符的执行顺序。
13.使用可变函数
13.1 测试和设置变量类型
string gettype(mixed var); bool settype(mixed var, string type);
其他测试函数:
is_array():检查变量是否是数组。
is_double()、is_float()、is_real():是否是浮点数
is_long()、is_int()、is_integer():是否是整数
is_string():是否是字符串
is_bool():是否是布尔值
is_object():是否是一个对象
is_resource():是否是一个资源
is_null():是否为null
is_scaler():是否是标量
is_numeric():是否是任何类型的数字或数字字符串
is_callable():是否是有效的函数名称
13.2 测试变量状态
isset():判断变量是否存在(可传变量列表)
unset():销毁一个变量
empty():检查一个变量是否存在,以及它的值是否为非空和非0
13.3 变量的重解释
目测强制转换:
int intval(mixed var [, int base]); float floatval(mixed var); string strval(mixed var);
intval()函数也允许在要转换的变量为字符串时指定转换的进制基数。
14.根据条件进行决策
elseif语句中间的空格可有可无。
15.通过迭代实现重复动作

Html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>freight</title>
</head>
<body>
<table border="0" cellpadding="3">
<tr>
<td bgcolor="#ccc" align="center">Distance</td>
<td bgcolor="#ccc" align="center">Cost</td>
</tr>
<tr>
<td align="right">50</td>
<td align="right">5</td>
</tr>
<tr>
<td align="right">100</td>
<td align="right">10</td>
</tr>
<tr>
<td align="right">150</td>
<td align="right">15</td>
</tr>
<tr>
<td align="right">200</td>
<td align="right">20</td>
</tr>
<tr>
<td align="right">250</td>
<td align="right">25</td>
</tr>
</table>
</body>
</html>
15.1 while循环
PHP代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>freight.php</title>
</head>
<body>
<table border="0" cellpadding="3">
<tr>
<td bgcolor="#ccc" align="center">Distance</td>
<td bgcolor="#ccc" align="center">Cost</td>
</tr>
<?php
$distance = 50;
while($distance <= 250){
echo "<tr>
<td align=\"right\">".$distance."</td>
<td align=\"right\">".($distance/10)."</td>
</tr>\n";
$distance += 50;
}
?>
</table>
</body>
</html>
注意right这里用的是\”而不是单引号。
15.2 for和foreach循环
可以将可变变量和for循环结合起来重复一系列的表单域。
for($i=1;$i<=$numnames;$i++){
$temp = “name$i”;
echo $$temp. ‘<br />’;
}
通过动态地创建变量名称,可以依次访问每一个表单域。
16.从控制结构或脚本中跳出
a) 终止循环:break
b) 调到下一次循环:continue
c) 结束整个PHP脚本的执行:exit
17.使用可替换的控制结构语法
if($totalqty == 0) :
echo “You did not order anything on the previous page!<br />”;
exit;
endif;
整理自《PHP与MySQL Web开发》。
从零开始PHP攻略(2)——操作符与迭代整理的更多相关文章
- 从零开始PHP攻略(001)——Bob的汽车零部件商店
1.创建订单表单 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
- 从零开始PHP攻略(3)——数据的存储与检索
要点目录: I.保存数据 II.打开文件 III.创建并写入文件 IV.关闭文件 V.读文件 VI.给文件加锁 VII.删除文件 VIII.其他有用的文件操作函数 IX.数据库管理系统 1.保存数 ...
- 从零开始PHP攻略(000)——关于WAMPServer集成环境
Apache.PHP和MySQL都可以用于多种操作系统和Web服务器的组合.本篇介绍在Windows下用WampServer环境包来搭建本地php环境. W:windows A:Apache M:My ...
- PHP学习(2)——操作符与迭代整理
目录: 10.操作符整理 11.表单计算代码 12.优先级与结合性 13.可变函数 14.条件判断 15.循环迭代 16.跳出控制 17.可替换的控制结构 10.操作符 10.1 算术操作符 算术操作 ...
- 从零开始攻略PHP(9)——错误和异常处理
1.Exception类 这个类是PHP为异常处理提供的内置类.构造函数的两个参数分别是错误消息和错误代码. 除了构造函数之外,该类还提供了如下的内置方法: · getCode() 返回传递给构造函数 ...
- IOS面试攻略
IOS面试攻略(1.0) 2013-10-13 20:58:09| 分类: IOS面试 | 标签:ios知识点总汇 ios面试 |举报|字号 订阅 来自:伊甸网 @ 看到这个关键字,我 ...
- JQuery攻略(二) Jquery手册
在上一篇 JQuery攻略(一) 基础知识——选择器 与 DOM 中,我写了js的使用,如何选择元素,和一些比较常用的函数及DOM操作. 在这篇中,我将建立多个列表,将更多的 自定义选择器,函数,DO ...
- 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法
若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...
- 30天,O2O速成攻略【8.15济南站】
活动概况 时间:2015年08月15日13:30-16:30 地点:山东大学凤岐茶社(山东大学中心校区北门18号楼东连廊一层) 主办:APICloud.蚁巡 网址:www.apicloud.com 费 ...
随机推荐
- 给Android程序员的六个建议
给Android程序员的六个建议 分类: 安卓相关2015-07-14 23:58 177人阅读 评论(0) 收藏 举报 android程序员 如果你一年前写的代码 , 在现在看来你还感觉写的很不错 ...
- PHP基本使用
本篇说的基本使用包括: php常规的语法 date,number,array等对象的处理方式 程序语言的常规的语法都比较好理解,大致相同.假如你是精于其它解释型语言的程序员,迁移到php几乎不费力气. ...
- 20145317彭垚 《Java程序设计》第五次实验报告
20145317彭垚实验五 Java网络编程及安全 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18:30-21: ...
- C# where(泛型类型约束)
/*在泛型类型定义中,where 子句用于指定对下列类型的约束:这些类型可用作泛型声明中定义的类型参数的实参. 例如,可以声明一个泛型类 MyGenericClass,这样,类型参数 T 就可以实现 ...
- 【Android测试】【第十节】MonkeyRunner—— 录制回放
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4861693.html 前言 在实际项目进行过程中,频繁的需 ...
- 【Android开发学习笔记】【第三课】Activity和Intent
首先来看一个Activity当中启动另一个Activity,直接上代码说吧: (1)首先要多个Activity,那么首先在res-layout下新建一个 Other.xml,用来充当第二个Activi ...
- C 不改变顺序,原址剔除数组中的0元素
#include <stdio.h> #include <malloc.h> #include <stdlib.h> #include <time.h> ...
- node.js express的安装过程
1.配置nodejs的环境变量之后执行 npm install -g express 命令: 2.如果版本为4.x需要再次执行 npm install -g express-generato ...
- 软件工程概论---max单元测试
题目:一个单元测试,查找list[]中的最大值 编写一个程序对Largest函数进行测试,列举所有测试用例. 思路:首先确保数组不为空,和数组长度不为0,否则输入错误.根据老师所给的函数写一个主函数, ...
- ubuntu下hadoop环境配置
软件环境: 虚拟机:VMware Workstation 10 操作系统:ubuntu-12.04-desktop-amd64 JAVA版本:jdk-7u55-linux-x64 Hadoop版本:h ...