您好,欢迎访问一九零五行业门户网

php5概念总结之一

/***********by garcon1986*******************/ 1. $this变量是对当前对象的引用,$this-var; $this-method(); 2. php5中的变量和常量称为property,函数称为method. 声明属性: //invalid public $var = 'hel'.'lo'; public $var2 = eod hello eod; public
/***********by garcon1986*******************/
1. $this变量是对当前对象的引用,$this->var; $this->method();
2. php5中的变量和常量称为property,函数称为method.
声明属性:
//invalid
public $var = 'hel'.'lo';
public $var2 = hello
eod;
public $var3 = 1+2;
public $var4 = self::staticmethod();
public $var5 = $myvar;
//valid
public $var6 = myconstant;
public $var7 = array(true, false);
public $var8 = hello
eod;
3. 继承(inheritance): 使用extends
class a {
function a(){
}
}
class b extends a {
function b(){
}
}
4. parent:: 访问父类中的方法或属性
5. static属性或方法不需要实例化类就能访问。
self:: 访问本类的静态变量。
实例化的类对象中不能访问静态属性,但是能访问静态方法。
静态属性不能使用->访问。
静态调用非静态方法会发生e_strict级别的警告。
例子:
staticvalue() . /n;
print $foo->my_static . /n;      // undefined property my_static
print $foo::$my_static . /n;
$classname = 'foo';
print $classname::$my_static . /n; // as of php 5.3.0
print bar::$my_static . /n;
$bar = new bar();
print $bar->foostatic() . /n;
?>
6. define - 定义一个有名字的常量。
define(constant,hello world);
echo constant; //输出 hello world
echo constant; //输出 constant and issues a notice.
define(greeting, hello you., true);
echo greeting; // outputs hello you.
echo greeting; // outputs hello you.
true会使字母不敏感,false会使字符敏感。默认是字符敏感,即false。
7. defined()用于验证某个常量是否存在。
if(defined('constant')){
    echo constant; //output hello world
}
8. const 用于声明常量;
常量不需要使用$;
常量的值必须是常量表达式,不能是变量,属性,算术表达式,函数等。
如: const constant1 = test of contant;
9. constant() 用于得到常量的值
define(mx,100);
echo mx;
echo constant(mx);
10. __autoload():
test1:
function __autoload($class_name) {
    require_once $class_name . '.php';
}
$obj  = new huanhang;
test2:
function __autoload($class_name) {
    require_once $class_name . '.php';
}
class huanhang{
    function huanghang(){
        echo huanhang sleep;
    }
}
$obj  = new huanhang();
$obj -> huanghang();
11. __construct
__construct 构造方法,当一个对象创建时调用此方法,使用此方法的好处是:可以使构造方法有一个独一无二的名称,无论它所在的类的名称
是什么.这样你在改变类的名称时,就不需要改变构造方法的名称
__destruct 析构方法,php将在对象被销毁前(即从内存中清除前)调用这个方法
12. abstract: php5中推出了抽象类和抽象方法。
抽象类不能被实例化。
任何类包含了一个以上的抽象方法,这个类也必须声明为抽象类。
继承抽象类时,父类中所有的抽象方法必须在子类中定义;而且这些方法的可见性必须跟父类的方法保持一致或者更少的限制。如:父类的方
法是protected,子类的方法就得是protected或public。
13. interface :
接口通过interface关键字定义,但是其中的方法不需要定义内容。
接口中所有的方法必须为public
所有的方法必须在类中实现implemented,否则会产生严重错误。
一个类不能实现两个接口,因为会造成混淆。
interface也能通过extends被继承
14. visibility可见性
类的属性有public,protected,private. 通过var定义等同于public
类的方法有public,protected,private. 默认是public
15. overloading重载:指动态的创建类属性和方法。通过魔术函数实现。
所有的重载方法都必须被声明为public。
php5提供了一种迭代(iteration)对象的功能,就像使用数组那样,可以通过foreach  来遍历对象中的属性。默认情况下,在外部迭代只能
得到外部可见的属性的值。
16. design pattern 设计模式
工厂模式(factory)允许你在代码执行时实例化对象。
单例模式(singleton)用于为一个类生成一个唯一的对象.最常用的地方是数据库连接。
17. 魔术方法(magic method)
__construct, __destruct  (参看 构造方法和析构方法), __call, __callstatic, __get, __set, __isset, __unset (参看 重载),
__sleep, __wakeup, __tostring, __set_state 和 __clone 等方法在php中被称为“魔术方法”(magic methods)。
php把所有以__(两个下划线)开头的类方法当成魔术方法。所以你定义自己的类方法时,不要以 __为前缀。
18. final
如果父类中的方法被声明为final,则子类无法覆盖该方法;
如果一个类被声明为final,则不能被继承。
19. clone
$copy_of_object = clone $object;
其它类似信息

推荐信息