-
break
可以接受一个可选的数字参数来决定跳出几重循环,默认是跳出一层循环(break;即break 1;)
。注意:break
后带的数字,不能超过实际可以跳出的循环层数,否则会报fatal error(致命错误)
。$i = 0; while (++$i) { echo $i; switch ($i) { case 5: echo "At 5<br/>"; break; case 10: echo "At 10<br/>"; break 2; default: break; } } echo $i; /* 12345At 5 678910At 10 10 */
-
continue
也可接受一个可选的数字参数,来决定跳出几层循环。continue
后面带的数字,同样不能超过实际可以跳出的循环层数。for ($i = 0; $i < 2; $i++) { for ($j = 1; $j < 4; $j++) { if ($j == 2) { continue 2; } echo '$i = '.$i.' $j = '.$j."<br/>"; } } /* $i = 0 $j = 1 $i = 1 $j = 1 */
-
goto
语句(php ≥ 5.3)
。通过goto
语句我们可以将程序跳转到指定的地方去执行。注意:goto
可以代替多层break
,而且是直接跳到指定位置。/* 语法 goto <标签>; <标签>: 语句; */ // 例: for ($i = 0, $j = 50; $i < 100; $i++) { while ($j--) { if ($j == 17) goto end; } } echo "i = $i"; // 这行会直接跳过 end: echo $i."&&".$j; // 0 && 17
-
常量(值可以是基本数据类型
string
,int
,float
,bool
)
Q:什么时候使用常量?
A:在程序中,当我们不希望某个值变化时,就可以考虑使用常量。
注意:常量一旦定义,就不能被重新定义(修改其值)和取消定义;// 定义 // 方式一 define ("TAX_RATE", 0.08); // 方式二 (php ≥ 5.3) const TAX_RATE = 0.09;
-
函数
// 函数语法结构 function 函数名(参数列表) { 语句; // 函数主体 return 返回值; // 返回值可以没有(即无返函数) }
页面之间相互调用的方法(四种)
require
require_once
include
include_once
**项目中基本使用
require_once
**
引用方式(以require
为例)// 方式一 require 'a.php'; // 方式二 $fileName = "a.php"; require $fileName; // 方式三 require ('b.php');
require
和require_once
的区别 /include
和include_once
的区别
require_once/include_once
在引入之前,会先判断是否已经引入过该文件,如果已经引用过了,不会再重复引用。而require/include
每引入一次,就会再次引入该文件。require
和include
的区别
require
是必须的意思,找不到文件时,会报fatal error (致命错误)
,程序终止运行;
include
是包含的意思,找不到文件时,会报warning 错误
,程序继续往下执行 ;
require
在程序执行前,就会全部导入;
include
在执行到include
代码时,才会去引入;
每调用一次函数,就会开辟一个新的函数栈。如果函数内部需要修改函数外部的某个变量的值,需要在函数内部用global
修饰该变量;或者把需要改变的变量用&
修饰并当做函数的参数传递进去。// 例1 $a = 1; function abc() { $a += 1; // 这里会报警告 Undefined variable: a } abc(); echo $a; // 1 // 例2 $a = 1; function abc() { global $a; $a += 1; } abc(); echo $a; // 2 // 例3 $a = 1; function abc(&$a) { $a += 1; } abc($a); echo $a; // 2
-
位运算(在计算机运算的时候,都是先转换为二进制,然后以补码的方式运算的)
二进制的原码、反码、补码
二进制的最高位为符号位 0表正数 1表负数
0的反码和补码都为0
正数的原码 = 反码 = 补码
负数的反码 = 原码符号位不变,其他位都取反
负数的补码 = 它的反码 + 1
位运算都需要先转换为补码,再进行运算
按位与 & (两数比较同一位,全为1,则运算结果为1)
按位或 | (两数比较同一位,只要有一个为1,则结果为1)
按位异或 ^ (两数比较同一位,只要两个不一样,则结果为1)
按位取反 ~ (原始数据为1,结果为0;原始数据为0,结果为1)
算数右移 >> (符号位不变,低位溢出,符号位补高位。每移动一位,表示“除以2”)
算数左移 << (符号位不变,高位溢出,低位补0。每移动一位,表示“乘以2”) -
数组(在php中,数组可以存放任意数据类型的数据)
注意
① 如果我们创建一个数组的时候,没有给某个元素指定下标,php就会自动的用目前最大的那个下标值(整数)+ 1,来作为该元素的下标(key)。没有指定下标,默认从0开始
② 如果我们给某个元素的下标一样,则会覆盖原来的值。即更改原来的值。
③ 使用 true 作为key,会默认转换为1,即
$arr[true] = $arr[1];
。使用 false 作为key,会默认转换为0,即$arr[false] = $arr[0]
。④ 使用 null 作为key,会默认转换为""(空字符串),即
$arr[null] = $arr[""]
。⑤ 使用小数作为key,会自动截断小数部分
⑥ 不能用数组和对象作为key
// 数组的创建 // 方式一 $arr[0] = 123; $arr[1] = "hello"; $arr[2] = true; $arr[3] = null; count($arr); // 表示数组的元素个数 // 方式二 $arr = array(123, "hello", true, null); // 方式三(默认情况下,元素下标是从0开始编号,但是我们可以自定指定下标) $arr['address'] = "北京"; $arr['hsp'] = 123; // 或者 $arr = array('address' => "北京", 'hsp' => 123); // 数组的遍历 // 方式一 (传统方式,只适用依次从0开始编号的数组) for ($i = 0; $i < count($arr); $i++) { echo $arr[$i]; } // 方式二 (使用foreach) foreach ($arr as $val) { echo $val; // 只打印对应的value } foreach ($arr as $key => $val) { echo $key." = ".$val; // 同时打印key和value } // 数组的打印 // 方式一 (print_r()函数) print_r($arr); // Array ( [address] => 北京 [hsp] => 123 ) // 方式二 (var_dump()函数,打印的数据更全面) var_dump($arr); // array(2) { ["address"]=> string(6) "北京" ["hsp"]=> int(123) } // 判断是否为数组类型(is_array()函数) $result = is_array($arr); // 返回bool值 // 字符串拆分为数组(explode()函数) $str = "北京 上海 天津 西安"; $arr = explode(" ", $str); // 第一个参数表示按照什么来拆分,第二个参数表示原始需要拆分的字符串数据
网友评论