1.php 不支持全局变量,在主脚本中声明的变量(不在函数中)不是全局变量,不能在函数中使用它们;
$a = "A"; fun_001(); function fun_001(){ echo $a; //报错: Undefined variable: a echo $GLOBALS["a"];// 打印A }
2.
$A ="Today"; $B ="Monday"; $C ="Tudeday"; function print_A($A,$B){ //global $C; echo $C; echo "<br>"; $B = $A." is ".$B; echo $B; } print_A($A,$B);print("<br>"); echo $B; //b输出 Monday function print_A1($A,&$B){ //global $C; echo $C; echo "<br>"; $B = $A." is ".$B; echo $B; } print_A1($A,$B);print("<br>"); echo "b=".$B; //由于参数$B前+了&,所以形参B的值发生了改变
3.PHP基础:
<?php ###php无全局变量 $a = "A"; fun_001(); function fun_001(){ //echo $a; //Undefined variable: a echo $GLOBALS["a"]."<br>"; } ###变量的间接引用 $name = "John"; $$name = "a person"."<br>"; //$$name 即为 $John echo($John); ###变量管理 【是否存在及注销变量】isset(NULL)返回false //isset() return true/false if(isset($first_name)){ print '$first name is set'; } //判断一个数组的元素: $arr = array("offset"=>"123","onset"=>"456"); if(isset($arr["offeset"])){ echo "$arr offeset is set"; } //判断一个对象的属性: if(isset($obj->propertity)){ } //unset() return true/false unset($a); if(isset($a)){ //$a已被取消定义,所以isset($a)返回false print '$a is set'; } //empty() return true/false $a = "aa"; print "$a is good<br>"; $a = null; if(empty($a)){ print '$a is empty<br>'; } ###双引号 变量或表达式可以直接嵌入引用(变量替换) $a = "AAA"; echo "$a".'<br>';//"."点操作符连接N个字符串 ###转义符 echo "\70<br>"; echo "\0x32"; ###定界符: ###结尾的一行(如上例的Eof;),一定要另起一行,并且改行除了Eof;这个定界符结尾标识 ###之外不能有任何其他字符,前后都不能有,包括空格 可省略";" ###可以直接写html标签输入页面内容<table>...</table> echo <<<MY_FLAG PHP stands for "PHP:HYpertext Preprocessor". The action "Php" is therebefore, usually referred to as a recursive ... MY_FLAG; ###访问字符串中的字符(使用偏移量访问字符串)PHP4中使用$str["偏移量"]访问,PHP5也支持 $str_1 = "A"; echo "str_1{1}=".$str_1{0}."<br>"; //echo "str_1{1}=".$str_1{1}."<br>"; //打印索引位1会报错,索引不存在 $str_1{2} = "D"; //直接修改索引位2不会报错 $str_1{1} = "N"; //直接修改索引位1不会报错 echo $str_1; //输出AND ###数组 array(1, 2, 3); //省略key等价于下面的这条 array(0 => 1, 1 => 2 , 2 => 3); array(1 => 1, 2, 3);//等价于 array(1 => 1, 2 => 2, 3 => 3); 指定了key 从1开始 array(array("name" => "Jhon", "age" => 26), array("name" => "Jeff", "age" => 30));//嵌套数组,2条person记录 $arr_2 = array(1,2,3); $arr_2[0] = 2; print_r($arr_2);//打印数组的系统方法# 输出 Array ( [0] => 2 [1] => 2 [2] => 3 ) echo "<br>"; $arr_3[] = 1; $arr_3[] = 2; $arr_3[] = 3; print_r($arr_3);//打印Array ( [0] => 1 [1] => 2 [2] => 3 ) echo "<br>"; $arr_3["name"] = "JOHN"; print_r($arr_3);//Array ( [0] => 1 [1] => 2 [2] => 3 [name] => JOHN ) echo "----------------<br>"; //使用foreach 遍历数组 foreach($arr_3 as $key => $value){ print "#$key = $value\n"; } //$key可选的 ,如果用不到key显示的话,上面的foreach可以写成下面这样: echo "----------------<br>"; foreach($arr_3 as $value){ echo $value."\t"; } ###常量 define("MY_OK", 0);//常量声明的公认的代码标准是全大写表示 ###变量的别名 为一个变量指定一个别名后,改变别名的值该变量的值也会发生变化 $bb = "BBB"; $b = & $bb; echo $bb."<BR>"; // print BBB $b = "BBBBB"; echo $bb."<BR>";// print BBBBB ###运算符 // === echo "---------------"; print (1 === "1"); $val_2="Z"; echo ++$val_2; ###错误抑制运算符 @ ###三元运算符 $val_3 = 1==1?0:1; echo "<br>".$val_3; ###for循环注意事项,php不会帮你优化并缓存循环变量 for($i = 0; $i<count($arr_2); $i++){} //每次都会执行cout()操作,应该优化为: $count = count($arr_2); for($i = 0; $i<$count; $i++){} ###include "file_name"; 被包含进来的页面中的变量也可以使用了 ###值传递 $x = 1; $y = 2; function square($x, $y){ $x = 3; $y = 4; } square($x, $y); echo $x."\n"; echo$y."\n"; ###引用传递 function square1(&$x, &$y){ $x = 3; $y = 4; } square1(&$x, &$y); echo $x."\n"; echo$y."\n"; ?>
4.PHP与HTML的嵌套
<?php if(date('md')=='0526'){ $greeting = "Good Day!"; }else{ $greeting = "Good morning!"; } ?> <html> <head> <title>PHP与HTML的嵌套测试</title> </head> <body> <?php echo $greeting;?> </body> </html>
body中的代码等价于<?= $greeting;?>,服务器必须支持<?...?>的短标记形式.尽量不要使用段标记short open tag
5. != 和 !==
// 处理表单数据 public function insert() { $Form = D("Form"); if($Form->create()) { if(false !==$Form->add()) { $this->success('数据添加成功!'); }else{ $this->error('数据写入错误'); } }else{ header("Content-Type:text/html; charset=utf-8"); exit($Form->getError().' [ <A HREF="javascript:history.back()">返 回</A> ]'); } }
手册中关于!=和!==的说明
$a !== $b | 非全等 | TRUE,如果 $a 不等于 $b,或者它们的类型不同。(PHP 4 引进) |
$a != $b | 不等 | TRUE,如果 $a 不等于 $b。 |
6.常用函数收录(不断整理中):
(1)dump此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值,可以打印数组、对象等等。