目录:

10.操作符整理

11.表单计算代码

12.优先级与结合性

13.可变函数

14.条件判断

15.循环迭代

16.跳出控制

17.可替换的控制结构

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)——操作符与迭代整理的更多相关文章

  1. 从零开始PHP攻略(2)——操作符与迭代整理

    目录: 10.操作符整理 11.表单计算代码 12.优先级与结合性 13.可变函数 14.条件判断 15.循环迭代 16.跳出控制 17.可替换的控制结构 10.操作符 10.1 算术操作符 算术操作 ...

  2. Linq学习之操作符

    一.环境搭建 下面将逐步搭建我们学习的环境,这个环境不仅仅是这次需要使用,以后的教程一样需要使用这个环境.所以请大家务必按照 搭建这里的环境否则会影响你后面的学习. 我们用到的几张表 通知消息表: 用 ...

  3. golang学习笔记13 Golang 类型转换整理 go语言string、int、int64、float64、complex 互相转换

    golang学习笔记13 Golang 类型转换整理 go语言string.int.int64.float64.complex 互相转换 #string到intint,err:=strconv.Ato ...

  4. canvas学习笔记、小函数整理

    http://bbs.csdn.net/topics/391493648 canvas实例分享 2016-3-16 http://bbs.csdn.net/topics/390582151 html5 ...

  5. RxJava学习笔记(操作符)

    前言 上一篇文章介绍了RxJava的基础知识和简单实现,篇幅已经比较多了,所以把操作符(Operators)相关的内容放在这一篇.有了上一篇文章的基础,相信会比较容易理解操作符相关的内容了. 操作符( ...

  6. TensorFlow学习笔记——深层神经网络的整理

    维基百科对深度学习的精确定义为“一类通过多层非线性变换对高复杂性数据建模算法的合集”.因为深层神经网络是实现“多层非线性变换”最常用的一种方法,所以在实际中可以认为深度学习就是深度神经网络的代名词.从 ...

  7. AngularJS的学习网站及相关资源整理

    学习angularjs的网站及相关资源的整理,会不断更新. angularJs的官网:https://angularjs.org/       API文档:https://docs.angularjs ...

  8. 学习Cassandra资料的一些整理

    Cassandra note: 依赖:需要java 8 (http://www.oracle.com/technetwork/java/javase/downloads/index.html) 数据模 ...

  9. java学习 之 操作符

    操作符介绍 java语言操作符 1.赋值操作符  = 2.计算操作符   + .- (减.负号).*(乘)./(除) 3.递增递减     --(递减).++(递增) 4.关系操作符    ==.!= ...

随机推荐

  1. 图像的padding操作

    为了完成卷积后图像大小不变,原始图像需要进行边界填充 copyMakeBorder(src,dst,top,bottom,left,right,bordertype,value); bordertyp ...

  2. Python基础--基于ubuntu linux基础知识点

    part1:Python编译 1.直接在终端编译-----在ubuntu中Python是在home文件夹下的,输入Python(Python2编译,想要Python3直接输入python3) 一般推荐 ...

  3. CI环境搭建-创建git

    添加如下配置:  上图说的需每次启动的即下面这个文件: 默认用户名.密码是admin/admin  创建代码仓库:  选择版本库:  使用方法: 1,创建一个文件夹  选择版本库地址:  也可以通过c ...

  4. IntelliJ IDEA 运行项目的时候提示 Command line is too long 错误

    在 IntelliJ IDEA 项目运行的时候收到了下面的错误提示: Error running 'Application': Command line is too long. Shorten co ...

  5. 2018CCPC桂林站G Greatest Common Divisor

    题目描述 There is an array of length n, containing only positive numbers.Now you can add all numbers by ...

  6. 顺序表应用1:多余元素删除之移位算法(SDUT 3324)

    Problem Description 一个长度不超过10000数据的顺序表,可能存在着一些值相同的"多余"数据元素(类型为整型),编写一个程序将"多余"的数据 ...

  7. 转:Jmeter文件上传、下载

    一.上传/下载的过程.        上传的过程就是你把你本地的文件,扔到服务器上的这么一个过程.        下载呢,就是把服务器上的文件拿过来,然后存到你本地的这么一个过程.        总结 ...

  8. python 生成螺旋矩阵

    对于任意 m*n 矩阵,将 1~m*n 的数字按照螺旋规则在矩阵中排列. 如 m=3,n=3,期望结果为: [ [ , , ], [ , , ], [ , , ] ] 以下代码支持方阵以及非方阵. c ...

  9. Java线程的启动和停止(一)

    如何构造线程 在运行线程之前需要先构造线程对象,线程对象的构造需要指定线程所需要的属性,比如:所属线程组.线程优先级.是否为Daemon线程等信息.下面我们看一下,java.lang.Thread中对 ...

  10. phpinfo中敏感信息记录

    比赛中或者渗透中如果遇到phpinfo,从里面发现的一些线索能够对后续的渗透和解题帮助很大,这里记录总结一下目前网上比较常用的的. 下图来源于:https://seaii-blog.com/index ...