PHP自学笔记01----2014年05月08日
2014-05-08 16:39
267 查看
一、变量
1、$符号用来定义变量。
2、引用赋值,与JAVA类似。指向的地址的值赋给了另一个变量,它们所指向的是同一个地址,即一个值,其中一个变量,另一个也会随着改变。
3、 & 符号?????
4、PHP中并不需要初始化变量,但这不是个好习惯。示初始化变量默认值:boolean default false;int and float(double) default 0;String default 空字符串;Array defualt null Array
5、变量的作用范围:局部变量,一个function中的变量,只能访问function内部的变量,局部变量的命名可以重名,但它的作用范围仅于内部。
在PHP中全局变量必须用global申明。
全局变量即使是申明在function中,在function外部对定义在function中的全局变量赋值,那么在function内部也可以访问。
全局变量的另一种办法:$GLOBALS代替global.
静态变量(static variable)
静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失.
0
0
1
2
Test1重复调用后,它的值就会保持着,而不是重置为0了。
Note:用表达式的结果对[b]静态变量(static variable)赋值会导致解析错误。[/b]
下面是三个很好的理由:
1、代码重用几乎是不可能的。
如果一个函数依赖于全局变量,那么想在不同的环境中使用这个函数几乎是不可能的。另外一个问题就是你不能提取出这个函数,然后在其他的代码中使用。
2、调试并解决问题是非常困难的。
跟踪一个全局变量比跟踪一个非全局变量困难的多。一个全局变量可能会在一些不明显的包含文件中被重新定义,即使你有一个非常好的程序编辑器(或者IDE)来帮助你,你也得花了几个小时才能发现这个问题所在。
3、理解这些代码将是非常难的事情。
你很难弄清楚一个全局变量是从哪里来得,它是用来做什么的。在开发的过程中,你可能会知道知道每一个全局变量,但大概一年之后,你可能会忘记其中至少一般的全局变量,这个时候你会为自己使用那么多全局变量而懊悔不已。
更好的使用全局变量请参才:www.jb51.net/article/39027.htm
可变变量
一个变量的变量名可以动态的设置和使用。
通常常量都是大写。
常量的定义:define("大写常量名","常量值");
const AAA = 'aaaaaa';
常量的范围是全局的。
常量只能包含标量数据:boolean,integer,float和string.
系统常量:__FILE__;//两个下划线。
表达式:PHP中几乎所写的任何东西都是一个表达式。函数也是表达式,它也可以赋给一个变量。
比较运算符中特殊的几个:'==='表示两边值相等且数据类型也相等。
’!=='判断值外还要判断数据类型。
特殊类型的比较:null与字符串比,null会转换成' '
三元运算符:“?:”:表达式 (expr1) ? (expr2) : (expr3) 在
expr1 求值为 TRUE 时的值为 expr2,在expr1 求值为FALSE 时的值为
expr3。
错误控制符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
如果激活了 特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg 中。此变量在每次出错时都会被覆盖,所以如果想用它的话就要尽早检查。
执行运算符
反引号:``;
<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?> 它可以执行系统命令?
数组运算符:判断相等、全等(相同的键 /值且顺序和类型相同),联合、不等
类型运算符:instanceof 用于确定一个 PHP 变量是否属于某一类
class 的实例:
控制结构:
foreach:它只是一种遍历数组的简便方法。它仅能用于数组。
foreach (array_erpression as $value){
statement;
}
foreach (array_expression as $key => $value){
statement;
}
switch
switch ($i) {
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
}require() 和
include() 几乎完全一样,除了处理失败的方式不同之外。include()
产生一个Warning而 require() 则导致一个 Fatal Error。换句话说,如果想在丢失文件时停止处理页面,那就别犹豫了,用
require() 吧。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。
1、$符号用来定义变量。
2、引用赋值,与JAVA类似。指向的地址的值赋给了另一个变量,它们所指向的是同一个地址,即一个值,其中一个变量,另一个也会随着改变。
3、 & 符号?????
4、PHP中并不需要初始化变量,但这不是个好习惯。示初始化变量默认值:boolean default false;int and float(double) default 0;String default 空字符串;Array defualt null Array
5、变量的作用范围:局部变量,一个function中的变量,只能访问function内部的变量,局部变量的命名可以重名,但它的作用范围仅于内部。
<?php $a = 1; include 'b.inc'; ?>此时$a将在b.inc中生效。
在PHP中全局变量必须用global申明。
全局变量即使是申明在function中,在function外部对定义在function中的全局变量赋值,那么在function内部也可以访问。
<?php $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); echo $b; ?>以上脚本的输出将是“3”
全局变量的另一种办法:$GLOBALS代替global.
<?php $a = 1; $b = 2; function Sum() { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; } Sum(); echo $b; ?>$GLOBALS 是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容。$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。
静态变量(static variable)
静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失.
<?php function Test() { $a = 0; echo $a; $a++; } Test(); echo "<br />"; Test(); function Test1(){ static $a = 0; echo $a; $a++; } Test1(); echo "<br />"; Test1(); echo "<br />"; Test1(); ?>0
0
0
1
2
Test1重复调用后,它的值就会保持着,而不是重置为0了。
Note:用表达式的结果对[b]静态变量(static variable)赋值会导致解析错误。[/b]
static $int = 0; // correct static $int = 1+2; // wrong (as it is an expression) static $int = sqrt(121); // wrong (as it is an expression too)用global其实并不好!
下面是三个很好的理由:
1、代码重用几乎是不可能的。
如果一个函数依赖于全局变量,那么想在不同的环境中使用这个函数几乎是不可能的。另外一个问题就是你不能提取出这个函数,然后在其他的代码中使用。
2、调试并解决问题是非常困难的。
跟踪一个全局变量比跟踪一个非全局变量困难的多。一个全局变量可能会在一些不明显的包含文件中被重新定义,即使你有一个非常好的程序编辑器(或者IDE)来帮助你,你也得花了几个小时才能发现这个问题所在。
3、理解这些代码将是非常难的事情。
你很难弄清楚一个全局变量是从哪里来得,它是用来做什么的。在开发的过程中,你可能会知道知道每一个全局变量,但大概一年之后,你可能会忘记其中至少一般的全局变量,这个时候你会为自己使用那么多全局变量而懊悔不已。
更好的使用全局变量请参才:www.jb51.net/article/39027.htm
可变变量
一个变量的变量名可以动态的设置和使用。
<?php $a = 'hello'; $$a = 'world'; //此行中的$$a就等于$hello, ?>常量
通常常量都是大写。
常量的定义:define("大写常量名","常量值");
const AAA = 'aaaaaa';
常量的范围是全局的。
常量只能包含标量数据:boolean,integer,float和string.
系统常量:__FILE__;//两个下划线。
表达式:PHP中几乎所写的任何东西都是一个表达式。函数也是表达式,它也可以赋给一个变量。
比较运算符中特殊的几个:'==='表示两边值相等且数据类型也相等。
’!=='判断值外还要判断数据类型。
特殊类型的比较:null与字符串比,null会转换成' '
三元运算符:“?:”:表达式 (expr1) ? (expr2) : (expr3) 在
expr1 求值为 TRUE 时的值为 expr2,在expr1 求值为FALSE 时的值为
expr3。
错误控制符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
如果激活了 特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg 中。此变量在每次出错时都会被覆盖,所以如果想用它的话就要尽早检查。
<?php /* Intentional file error */ $my_file = @file ('non_existent_file') or die ("Failed opening file: error was '$php_errormsg'"); // this works for any expression, not just functions: $value = @$cache[$key]; // will not issue a notice if the index $key doesn't exist. ?>
执行运算符
反引号:``;
<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?> 它可以执行系统命令?
数组运算符:判断相等、全等(相同的键 /值且顺序和类型相同),联合、不等
类型运算符:instanceof 用于确定一个 PHP 变量是否属于某一类
class 的实例:
$a instanceof MyClass
控制结构:
foreach:它只是一种遍历数组的简便方法。它仅能用于数组。
foreach (array_erpression as $value){
statement;
}
foreach (array_expression as $key => $value){
statement;
}
switch
switch ($i) {
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
}require() 和
include() 几乎完全一样,除了处理失败的方式不同之外。include()
产生一个Warning而 require() 则导致一个 Fatal Error。换句话说,如果想在丢失文件时停止处理页面,那就别犹豫了,用
require() 吧。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。
相关文章推荐
- php笔记01:php基本语法格式
- SDL自学笔记01:Windows 7 64位 Mingw + Eclipse + CDT +SDL环境配置总结
- 自学php笔记
- PHP自学笔记 ---李炎恢老师PHP第一季 TestGuest1.1 密码处理+1.2可选验证
- php学习笔记01
- php自学笔记(一)
- php自学笔记外传---部分内建函数
- 自学基础加强视频01--11笔记
- php面向对象学习笔记01-面向对象介绍、构造函数、析构函数
- PHP学习笔记01——基础语法
- php自学笔记四扫雷完成
- 【个人笔记】003-PHP基础-01-PHP快速入门-03-PHP环境搭建
- php学习笔记(三)之发送邮件01 关于class_smtp.php
- PHP笔记01
- 自学PHP的笔记(二)
- php学习笔记(三)之发送邮件01 关于class_smtp.php
- PHP基础笔记(01)
- C算法及PHP学习笔记_01
- PHP自学笔记 ---李炎恢老师PHP第一季 TestGuest0.5
- phonegap3.1.0自学笔记01_命令行界面(CLI)简单使用