目录:

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. VUE:Select2

    <template> <div> <ul class="skill"> <li v-for='item of list' v-on:cli ...

  2. 在gitlab上删除分支后,本地git branch -r还能看到

    1. git remote prune --dry-run origin 查看当前有哪些是该消失还存在的分支 2. git remote prune origin 删除上面展示的所有分支 3. git ...

  3. 快速弄清JavaScript中undefined和null的区别

    ES6的7大数据类型里面有这俩玩意:undefined和null,让接触不深的学习者常常产生混淆,这俩玩意的区别在哪呢? 字面意思上来看,undefined是未(被我们)阐明的,未说明的,null则意 ...

  4. shell 脚本拉取svn代码,vim中文乱码解决办法

    VIM安装成功后可以使用,但对中文是乱码,解决方法是在vim的配置文档中添加相关设置即可: 找到etc/vimrc 编辑~/.vimrc文件,加上如下几行: set fileencodings=utf ...

  5. python 语音输入

    # 系统客户端包 import win32com.client speaker = win32com.client.Dispatch("SAPI.SPVOICE") # 系统接口 ...

  6. 使用 kubeadm 安装 kubernetes v1.16.0

    近日通过kubeadm 安装 kubernetes v1.16.0,踩过不少坑,现记录下安装过程. 安装环境: 系           统:CentOS Linux release 7.6 Docke ...

  7. 线程的interrupt()

    官网解释 If this thread is blocked in an invocation of the wait(), wait(long), or wait(long, int) method ...

  8. Linux 网络通信命令之 netstat

    定义 Linux netstat命令用于显示网络状态. 利用netstat指令可让你得知整个Linux系统的网络情况. 语法 netstat [-acCeFghilMnNoprstuvVwx][-A& ...

  9. Java中可变参数

    从java5开始出现了可变参数,这是对java方法及数组的拓展! 方法中可以接受的参数不再是固定个数的,而是随着具体需求传递的多少来决定. 定义格式: 返回值类型  方法名(参数类型 ... 形式参数 ...

  10. OSX 改变PHP安装路径环境变量

    当使用XAMPP来学习Laravel的时候,用composer安装laravel总是报错,说mcrypt is required ,但是当我在终端里打印 which php 显示的是usr/bin/p ...