目录:

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. Log4j,Log4j2,logback,slf4j日志学习(转)

    日志学习笔记Log4jLog4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.数据库等:我们也可以控制每一条日志的输出格式:通过定义每一条日志 ...

  2. (五)CWnd 所有窗口类的父类,CFrameWnd,Afx_xxx 全局函数,命名规范

    CWnd::MessageBox: 只有CWnd的派生类才可以使用MessageBox 所以应用程序类中使用:AfxMessageBox // 初始化 OLE 库 if (!AfxOleInit()) ...

  3. [Luogu] 飞扬的小鸟

    https://www.luogu.org/problemnew/show/P1941 Bfs or Dp #include <bits/stdc++.h> using namespace ...

  4. HGOI20191115 模拟赛 题解

    Problem A 表演 有$n$个有点权的点,$m$个有边权的边.对于每个点$u$,输出从这个点出发到$v$,其路径权值的两倍加上v的点权和最小的值. 对于$100\%$的数据,满足$1 \leq ...

  5. 【luoguP4124 】[CQOI2016]手机号码

    题目描述 人们选择手机号码时都希望号码好记.吉利.比如号码中含有几位相邻的相同数字.不含谐音不吉利的数字等.手机运营商在发行新号码时也会考虑这些因素,从号段中选取含有某些特征的号码单独出售.为了便于前 ...

  6. PHP开发框架CI——学习小记

    之前做后端开发的时候,因为都是很小的功能或项目,所以基本都是手写原生php.不过这样的开发效率在面对稍大一些的项目的时候是比较低的.因此花时间学习一下php相关框架CI的使用. MVC架构 在学习CI ...

  7. 线程的join()方法

    官网描述 join public final void join() throws InterruptedException Waits for this thread to die. An invo ...

  8. Windows环境安装MySQL8.0.11

    网络开发数据库是必不可少的.曾经安装个Mysql,但是忘了.再次安装还是得百度.那还不如自己写篇博客记录一下呢,以后再忘记就看自己的博客好 Mysql官网安装地址(windows环境): https: ...

  9. 使用策略模式减少if else

    首先要明确的说出策略模式会不可避免导致你的代码类变得很多,如果对应方法逻辑很复杂时可采用,如果逻辑不是很复杂就有点大材小用了. package com.zihexin.application.stra ...

  10. Linux系统Docker配置阿里云镜像加速器

    vim /etc/docker/daemon.json # 替换为 "registry-mirrors": ["https://v2ltjwbg.mirror.aliyu ...