php中操作符与迭代整理

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; //5

 
$a=4;

echo $a++; //4

  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;

时间: 2024-09-20 15:33:47

php中操作符与迭代整理的相关文章

link中如何获得迭代对象的全部属性?需要发射么?

问题描述 link中如何获得迭代对象的全部属性?需要发射么? link中如何获得迭代对象的全部属性?需要发射么? 解决方案 object[] GetAllPropVal<T>(T obj) { return typeof(T).GetProperties().Select(x => x.GetValue(obj, null)).ToArray(); } 解决方案二: PropertyInfo[] protys<T>(T t) { Type eleType = t.GetTyp

Lua中的函数相关知识点整理汇总

  这篇文章主要介绍了Lua中的函数相关知识点整理汇总,包括函数的参数传递和定义函数等基本知识,需要的朋友可以参考下 函数是一组一起执行任务的语句.可以把代码放到独立的函数中.怎么划分代码功能之间的不同,但在逻辑上划分通常是让每个函数执行特定的任务. Lua语言提供了程序可以调用大量的内置方法.例如,方法print()打印作为输入传参数在控制台中. 函数是已知的各种名称,如方法或子程序或程序等. 定义一个函数 在Lua编程语言中的方法的定义一般形式如下: 代码如下: optional_funct

Win7可以在SSD固态硬盘中使用磁盘碎片整理吗?

  磁盘碎片整理是Windows自带的磁盘清理优化工具,在电脑无安装其他优化软件时,可直接使用磁盘清理来解决掉硬盘里的冗杂文件,保证硬盘的寿命,也可以提升电脑整机的运行效率.但是在Win7系统里有不少小伙伴都想知道可以对SSD固态硬盘进行磁盘清理吗?在这里小编就来告诉你答案,不可以!至于原因就让小编一一道一. Win7磁盘碎片整理 到了固态硬盘跑马圈地,机械存储式弱式微的当下,磁盘碎片整理却淡出了我们的视野,越来越多的人表示,固态硬盘压根就不需要磁盘碎片整理 那么为什么固态硬盘不需要磁盘碎片整理

Java中jqGrid 学习笔记整理——进阶篇(二)_java

相关阅读: Java中jqGrid 学习笔记整理--进阶篇(一) 本篇开始正式与后台(java语言)进行数据交互,使用的平台为 JDK:java 1.8.0_71 myEclisp 2015 Stable 2.0 Apache Tomcat-8.0.30 Mysql 5.7 Navicat for mysql 11.2.5(mysql数据库管理工具) 一.数据库部分 1.创建数据库 使用Navicat for mysql创建数据库(使用其他工具或直接使用命令行暂不介绍) 2. 2.创建表 双击打

效果-struts中如何将迭代list的数据实现每行显示固定数目的数据?

问题描述 struts中如何将迭代list的数据实现每行显示固定数目的数据? 1C 1. 求问,struts中如何将迭代list的数据实现每行显示固定数目的数据?我是根据迭代的下标来做的,没有实现效果.(每行显示3条数据)代码如下:

link中如何将迭代的结果转换成流模式?比如二进制流或者其它流?

问题描述 link中如何将迭代的结果转换成流模式?比如二进制流或者其它流? link中如何将迭代的结果转换成流模式?比如二进制流或者其它流? 解决方案 https://msdn.microsoft.com/zh-cn/library/system.io.stream.aspx在实现 Stream某个派生类,必须为 Read 和 Write 方法提供实现. 异步方法 ReadAsync.WriteAsync和 CopyToAsync 使用这些实现的同步方法 Read 和 Write. 因此,您的

link中如何获得迭代对象依赖的那个集合对象?用发射能做到么?

问题描述 link中如何获得迭代对象依赖的那个集合对象?用发射能做到么? link中如何获得迭代对象依赖的那个集合对象?用发射能做到么? 解决方案 自己写一个扩展方法:static class MyLinq{ public static void MyForeach<T>(this IEnumerable<T> data Action<IEnumerable<T> T> action) { foreach (T item in data) action(da

C++中操作符重载的const与默认构造函数

问题描述 C++中操作符重载的const与默认构造函数 原代码 class TestOverloadLessThan { public: TestOverloadLessThan( int m ) : m_int(m){}; int getInt(){ return m_int;}; bool operator<( const TestOverloadLessThan& t) const { return ( this->getInt() < t.getInt() ); }; p

关于游戏开发中背包物品的整理算法的问题

问题描述 关于游戏开发中背包物品的整理算法的问题 场景是游戏中的背包里面要整理物品,每个物品在格子中方的量是一定的(假设99), 要求相同的东西放在一块做整理,位置顺序是按照原始背包的顺序, 比如:O O A(50) B(22) A(50) 排好后是 A(99) A(1) B(22 ) 比如:O O B(50)A(50)B (50) A(36)摆好后是 B(99)B( 1) A(86) 我的想法比较low是先合再一起 再分开,效果不太好,请教一下各路大神是否有更好的算法实现 解决方案 建议是先合