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攻略(2)——操作符与迭代整理
目录: 10.操作符整理 11.表单计算代码 12.优先级与结合性 13.可变函数 14.条件判断 15.循环迭代 16.跳出控制 17.可替换的控制结构 10.操作符 10.1 算术操作符 算术操作 ...
- Linq学习之操作符
一.环境搭建 下面将逐步搭建我们学习的环境,这个环境不仅仅是这次需要使用,以后的教程一样需要使用这个环境.所以请大家务必按照 搭建这里的环境否则会影响你后面的学习. 我们用到的几张表 通知消息表: 用 ...
- golang学习笔记13 Golang 类型转换整理 go语言string、int、int64、float64、complex 互相转换
golang学习笔记13 Golang 类型转换整理 go语言string.int.int64.float64.complex 互相转换 #string到intint,err:=strconv.Ato ...
- canvas学习笔记、小函数整理
http://bbs.csdn.net/topics/391493648 canvas实例分享 2016-3-16 http://bbs.csdn.net/topics/390582151 html5 ...
- RxJava学习笔记(操作符)
前言 上一篇文章介绍了RxJava的基础知识和简单实现,篇幅已经比较多了,所以把操作符(Operators)相关的内容放在这一篇.有了上一篇文章的基础,相信会比较容易理解操作符相关的内容了. 操作符( ...
- TensorFlow学习笔记——深层神经网络的整理
维基百科对深度学习的精确定义为“一类通过多层非线性变换对高复杂性数据建模算法的合集”.因为深层神经网络是实现“多层非线性变换”最常用的一种方法,所以在实际中可以认为深度学习就是深度神经网络的代名词.从 ...
- AngularJS的学习网站及相关资源整理
学习angularjs的网站及相关资源的整理,会不断更新. angularJs的官网:https://angularjs.org/ API文档:https://docs.angularjs ...
- 学习Cassandra资料的一些整理
Cassandra note: 依赖:需要java 8 (http://www.oracle.com/technetwork/java/javase/downloads/index.html) 数据模 ...
- java学习 之 操作符
操作符介绍 java语言操作符 1.赋值操作符 = 2.计算操作符 + .- (减.负号).*(乘)./(除) 3.递增递减 --(递减).++(递增) 4.关系操作符 ==.!= ...
随机推荐
- Python程序设计《集美大学各省成绩分析》
分析文件‘集美大学各省录取分数.xlsx’,完成以下功能: 1)集美大学2015-2018年间不同省份在本一批的平均分数,柱状图展示排名前10的省份, 2)分析福建省这3年各批次成绩情况,使用折线图展 ...
- 【SaltStack官方版】—— returners——返回器
ETURNERS 返回器 By default the return values of the commands sent to the Salt minions are returned to t ...
- 题解 [51nod1201] 整数划分
题面 解析 首先,因为是不同的数字, 可以从小到大依次枚举加上每一个数字的贡献,再枚举每个数. 然而这样会T掉... 考虑到\(n\)只有\(50000\), 当分成的数最多时,设最大的数为\(m\) ...
- 多线程 submit与execute区别
(1)可以接受的任务类型 submit: execute: 可以看出: execute只能接受Runnable类型的任务 submit不管是Runnable还是Callable类型的任务都可以接受,但 ...
- webuploader+上传文件夹
在web项目中上传文件夹现在已经成为了一个主流的需求.在OA,或者企业ERP系统中都有类似的需求.上传文件夹并且保留层级结构能够对用户行成很好的引导,用户使用起来也更方便.能够提供更高级的应用支撑. ...
- luogu4930
P4930 「FJ2014集训」采药人的路径 题目描述 采药人的药田是一个树状结构,每条路径上都种植着同种药材.采药人以自己对药材独到的见解,对每种药材进行了分类.大致分为两类,一种是阴性的,一种是阳 ...
- python 生成金字塔
num = eval(input("请输入一个整数:")) , num + ): , -): print(" ", end="\t") , ...
- free 内存检测
free打印出的内存信息主要分为两种,一种是安装的内存,一种是用磁盘虚拟的内存,就是这里的Swap,相信装过Linux系统的同学肯定不陌生交换分区,这里Swap大小就是我们分区的时候分配的大小. 下面 ...
- 预处理、const、static、sizeof-说明内联函数使用的场合
1:首先使用inline函数可以完全取代表达式形式的宏定义. 内联函数在C++类中的应用最广的应该是用来定义存取函数.我们定义的类中一般会把数据成员定义成私有的或者保护的,这样,外界就不能直接读写我们 ...
- 第二届强网杯部分题writeup
0x00 题目名称 签到 操作内容: FLAG值: flag{welcome_to_qwb} 0x01 题目名称 Weclome 操作内容: 通过查看文件发现是一个bmp格式的图片文件,然后加上后 ...