2010年12月9日木曜日

php 笔记1

面向对象特性

public/private/protected访问修饰符,针对对象中的方法和属性

统一的构造函数名称__construct().

通过__destructor()定义对象的析构方法

接口

instanceof操作符

final方法--不能被子类重载

final标记类 --不能被子类继承

强制复制对象 必须用clone关键字

类中的常量可以用类来引用 const AA="AA" --> Class::AA

静态方法 不支持$this变量 Class::method();

静态成员 通过类自身来访问 self::$instance;

抽象类 防止被实例化

抽象方法

对象类型提示 函数声明中对参数进行对象类型提示,不正确系统报错

支持连续引用方法返回的对象 $obj->method()->method2();

迭代 实现Iterator接口后,可以用foreach()遍历一个类实例

__autoload()方法

其他特性

try/throw/catch 你只能抛出继承Exception的类

foreach 函数支持引用 循环参数加上&符号,可以在循环中更改数组的值

给引用参数设置默认值 php4只能给传递值的参数设置默认值,php5可以给传递引用的参数设置默认值

基础

php不支持全局变量,除了一些预定义的变量

间接引用

管理变量

isset() 用来判断某个变量是否已经被声明。返回布尔值
isset(v1,v2,v3…)可以接受多个参数,所有变量都定义的情况下才返回true

unset()取消定义之前的变量,如果没有其他变量引用它的话会释放变量使用的内存空间

empty() 判断变量是否没被声明或者值是false

预定义超全局变量

$_GET[],$_POST[],$_COOKIE[],$_ENV[],$_SERVER[]

基础数据类型

8种数据类型
整型
浮点型数字
字符串
 单引号不支持双引号的转义和变量替换 定界符以<<<符号开始,紧跟的字符串不能在文本中出现。
 定界符转义和变量替换基本和双引号相同,不同的是不需要转义双引号。
 访问字符串中的字符 $str{1}
布尔型 空字符串("")和0("0")字符串为false
NULL
Resources
数组 php的数组是使用哈希表构建的。 array([key=>] value,[key=>] value,...) 方括号中元素可选
 访问数组元素
 $arr1[0]
 使用foreach遍历数组
常量 define("CONSTANT_NAME",value [,case_sensitivity]) case_sensitivity大小写敏感,默认true

比较运算
1=="1" true
1==1   true
1==="1" false
1===1   true

类型转换
(int),(integer)
(float),(real),(double)
(string)
(bool),(Boolean)
(array)
(object)

代码包含控制结构
include file_name;
require file_name; require会停止代码执行,include只会警告

eval() 把代码当作字符串包含进来再执行


通过值返回数据
通过引用返回数据

传递值的参数
传递引用的参数

默认参数

0 件のコメント:

コメントを投稿