php学习笔记

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。
上例中Model的Add方法返回的是影响记录ID值,如果返回为false则为错误,0为失败。由于PHP是弱类型语言。所以这里使用恒等的判断方法(恒等,及变量的数据类型、长度、值必须相等)

6.常用函数收录(不断整理中):

  (1)dump此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值,可以打印数组、对象等等。

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值