一、流程控制
1、if(与C语言类似)
<?php
if (expr)
statement
?>
如果expr的值为true则执行statement
2、else
在满足某个条件时执行一条语句,而在不满足该条件时执行其它语句,
可以在if语句的表达式为false时执行
3、elseif
elseif 的语句仅在之前的 if 和所有之前 elseif 的表达式值为 FALSE,并且当前的 elseif 表达式值为 TRUE 时执行。
注:else if (分开写)仅在使用花括号时才与elseif(合起来)一致
4、流程控制的替代语法
替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;。
注:不支持在同一个控制块内混合使用两种语法。
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>
```php
上述语法错误,下面的正确,我觉得上面的case语句是switch的语句,相当于两个语句混合在一起;
而下面的代码相当于两个语句,之间没有什么内含关系,所以是正确是**(仅个人理解)**
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>
5、while(与C语言类似)
while (expr)
statement
当expr为true时执行statement,while语句也具有替代语法
while (expr):
statement
...
endwhile;
6、do-while (保证会执行一次,即表达式的真值在每次循环结束后检查)
没有替代语法
7、for(与C语言类似)
有替代语法
for (expr1; expr2; expr3):
statement;
...
endfor;
8、foreach
提供了遍历数组的简单方式,foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。(对于遍历数组的很多代码还不是很懂)
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
9、break
结束当前for switch while do-while foreach等的循环,也可以接受一个可选的数字参数来决定跳出几重循环。 比如break 1即为跳出最内层循环,break 2 为跳出内层的第一第二层循环。break 0不合法,变量也不可作为参数。
10、continue
在循环结构中用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。 continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。默认值是 1,即跳到当前循环末尾。 continue不合法,变量也不可作为参数。
11、switch
switch 语句类似于具有同一个表达式的一系列 if 语句。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。
switch有替代语法,也可以使用分号代替case后面的冒号(与C语言不同处)
<?php
switch ($i):
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
default:
echo "i is not equal to 0, 1 or 2";
endswitch;
?>
其中default表示任何与其他case不匹配的情况
12、declare
declare 结构用来设定一段代码的执行指令。declare 的语法和其它流程控制结构相似,
declare (directive)
statement
其中statement部分将被执行或怎样执行以及执行中有什么副作用出现取决于 directive 中设定的指令。
13、return
如果在一个函数中调用 return 语句,将立即结束此函数的执行并将它的参数作为函数的值返回。return 也会终止 eval() 语句或者脚本文件的执行
eval语句是将字符串转换为PHP代码执行
14、require、include
require在失败时会终止脚本运行,而include只是发出警告
15、require_once、include_once
与require、include类似,区别是如果该文件中已经被包含过,则不会再次包含。
16、goto
goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch,通常的用法是用 goto 代替多层的 break。
<?php
goto loop;
for($i=0,$j=50; $i<100; $i++) {
while($j--) {
loop:
}
}
echo "$i = $i";
?>
上述代码会输出错误,我的理解是因为goto不能跳出一个函数也不能跳入另一个函数或循环中。
二、几个函数
1、intval()函数
获取变量的整数值
echo intval(array'foo','bar'))//输出1
2、is_numeric()
检测变量是否为数字或数字字符串
is_numeric
( mixed $var
) : bool
如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE。
3、trim()
去除字符串首尾处的空白字符(或者其他字符)
4、md5()
语法:
md5(string,raw)
5、sha()
sha1 — 计算字符串的 sha1 散列值
sha1加密比较
其要求参数不能为数组
参数
str
输入字符串。
raw_output
如果可选的 raw_output 参数被设置为 TRUE
那么 sha1 摘要将以 20 字符长度的原始格式返回,
否则返回值是一个 40 字符长度的十六进制数字。
返回值
返回 sha1 散列值字符串。