PHP五大要点完整笔记Word文件下载.docx
《PHP五大要点完整笔记Word文件下载.docx》由会员分享,可在线阅读,更多相关《PHP五大要点完整笔记Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
>
!
--[if!
supportEmptyParas]-->
--[endif]-->
二、PHP与众不同的continue
continue与众不同之处在于接受一个可选的数字参数来决定跳过几重循环到循环结尾。
#php_continue.php
在php中,continue在循环结构用用来跳过本次循环中剩余的代码并开始执行下一次循环。
这一点和其他语言是一致的,
不过,另有妙处:
continue接受一个可选的数字参数来决定跳过几重循环到循环结尾。
$i=0;
$j=0;
while($i++<
3){//level3
Outer
while
(1){//level2
Middle
while
(1){//level1
Inner
continue3;
}
Thisnevergetsoutput.
Neitherdoesthis.
$j++;
//afterrunscontinue3,itcomestotheendoflevel3
\$j=$j"
//output:
$j=0
三、PHP中的数组
php
#php_array.php
/*默认的方式下,php的array的key是非负整数,这种情形和多数语言如c,c++,java中的数组是一致的
*从这点看,java中的数组其实是php中数组的一种默认的方式;
而php的array则还有java中Map类的特性:
key-value
×
phpmanual中的说法“PHP中的数组实际上是一个有序图。
图是一种把values映射到keys的类型”
$array=array("
0"
"
1"
2"
3"
4"
5"
);
print_r($array);
output:
Array
(
[0]=>
0
[1]=>
1
[2]=>
2
[3]=>
3
[4]=>
4
[5]=>
5
)
//用count()函数来数出数组中元素的个数
for($i=0,$size=count($array);
$i<
$size;
$i++)
{
echo
$array[$i];
echo"
1
2
3
4
5
/*useforeachtoloop*/
foreachtoloop\n"
foreach($arrayas$temp){
echo($temp);
//outputasabove
/*foreachexample1:
valueonly*/
$a=array(1,2,3,17);
foreach($aas$v){
print"
Currentvalueof\$a:
$v.\n"
//这里使用了转义字符\,使得$a作为一个字串输出
Currentvalueof$a:
1.
2.
3.
17.
/*foreachexample2:
value(withkeyprintedforillustration)*/
/*forillustrativepurposesonly*/
\$a[$i]=>
$i++;
$array2=array("
a"
=>
"
avalue"
b"
bvalue"
c"
print_r($array2);
****\n"
echo$array2[$array2["
]];
//
//echo$array2[$array2[2]];
//企图像java那样使用数组下标方式,是无效的
\n***\n"
/*output:
****
bvalue
***
$arr=array("
=>
"
bar"
12=>
true);
echo$arr["
];
//bar
echo$arr[12];
//1
四、可变变量、字符串运算符和数组运算符:
相异于其他语言的部分
#php的可变变量
/*可变变量就是变量名可以动态的设置和使用的变量。
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。
因为普通变量的值是可变的,所以可变变量的变量名也是可变的。
//可变变量适合在什么场合使用呢?
$a="
hello"
//定义一个普通变量
$$a="
world"
//定义一个可变变量
$a\n"
hello
${$a}\n"
//使用可变变量
//同echo"
$hello\n"
//output:
world
#php的字符串运算符
//连接运算符(“.”)
$a="
first"
$b=$a."
==>
second"
//now$bis"
first==>
$b\n"
//连接赋值运算符(“.=”)
//thesameto$a=$a."
$a.="
//now&
ais"
/*其实可以理解为就只有一种,即连接运算符
这里的点("
."
)连接运算符和java语言中的字符串连接符("
+"
)是类似的。
#php的数组运算符:
+
/*PHP仅有的一个数组运算符是+运算符。
它把右边的数组附加到左边的数组后,但是重复的键值不会被覆盖。
亦即,以左边的数组为主导,若附加其上的(右边的)数组中有与其key重复的部分将被忽略
$a=array("
apple"
"
banana"
$b=array("
pear"
strawberry"
cherry"
$a1=array("
a1_cherry"
d"
a1=d"
$c=$a+$b;
var_dump($c);
array(3){
["
]=>
string(5)"
string(6)"
$d=$a+$b+$a1;
var_dump($d);
array(4){
string(4)"
五、NULL
PHPmanual关于NULL的描述:
NULL
特殊的NULL值表示一个变量没有值。
NULL类型唯一可能的值就是NULL。
在下列情况下一个变量被认为是NULL:
*被赋值为NULL。
*尚未被赋值。
*被unset()。
NULL类型只有一个值,就是大小写敏感的关键字NULL。
好混乱啊,在javascript中还有关键字:
var用来声明变量,php没有,美元符号($)后面跟个合法的字符串,一个php的变量就诞生了,如上所说,它尚未被赋值,应该被认为是:
NULL。
使用strlen()试图将其当作string,并算出它的长度,这样做,php引擎不认为是错用。
if(is_null($none))
length="
.strlen($none)."
//canoutput:
length=0
else
undefinedvariable\n"
//cannotcomehere
//PHPmanual说明:
(1)is_null--
检测变量是否为NULL
//
(2)NULL类型只有一个值,就是大小写敏感的关键字NULL
$fo=null;
if(is_null($fo))
{//依据上述
(2),并非大写的NULL,本不该执行此处的,实际上并非如此,why?
\$fo=nullisNULL\n"
$fo=nullisNULL
$foo=NULL;
if(is_null($f)){
\$f=NULLisalsoNULL"
//output:
$f=NULLisalsoNULL