CodeSky 代码之空

随手记录自己的学习过程

归档时间:2014-02

PHP面向对象中接口和抽象类的区别及应用场景

2014-02-01 22:36分类: PHP评论: 0

抽象类访问权限不能是private 可以有不是抽象属性和抽象方法 所以抽象方法前要加abstract 如果有抽象方法 这个类就是抽象类 前要加abstract 继承用extends 子类必须定义所有抽象方法,抽象方法不能实例化对象,子类使用implements关联接口   接口内不能声明变量 只能声明常量,并且所有成员权限都是public 接口声明用interface   一个类可以由一个父类但可以有许多接口,必须要将所有接口中的抽象方法全部实现才能创造对象,所以接口可以用于规范化和追加功能

阅读更多 →

PHP面向对象一道题认识些函数

2014-02-01 22:34分类: PHP评论: 0

题目是酱紫的: 以下会输出啥?

1<?php
2	class sample {
3		function __call($a, $b) {
4			echo ucwords(implode(' ', $b).' '.$a); //每个单词首字母大写
5		}
6
7		function ads() {
8			ob_start();	//打开缓冲控制
9			echo 'by';
10			return $this;
11		}
12
13		function ade() {
14			$c = ob_get_clean();
15			$this->php('brophp', $c);
16		}
17	}
18
19	$inst = new sample();
20
阅读更多 →

关于public,protected,private,static,const和final

2014-02-01 21:56分类: PHP评论: 0

public 可以被同一个类、子类、外部访问和调用   protected 只能被同一个类 子类调用和访问   private 只能被同一个类 调用和访问   static的成员属性或者方法可以不实体化直接通过self::来调用 也可以通过实体化$this-> 并且static属于类而不属于具体对象,数据会共享   const 只能通过self::来访问 常量通常都是大写而且没有$ final代表不能被继承和重构

阅读更多 →

PHP5魔术方法小结

2014-02-01 21:52分类: PHP评论: 0

__construct(),__destruct(),__call(),__callStatic(),__get(),__set(),__isset(),__unset(),__sleep(),__wakeup(),__toString(),__invoke(),__set_state() 和 __clone() 等方法在 PHP 中被称为"魔术方法"(Magic methods)。在命名自己的类方法时不能使用这些方法名,除非是想使用其魔术功能。

__construct()__destruct() 构造函数和析构函数,一个在调用的时候设定默认值啦,或者是方便赋protected或者private的值,另一个在对象销毁前被调用,__destruct()内不能有任何参数。

在对象中调用一个不可访问方法时,__call() 会被调用。

用静态方式中调用一个不可访问方法时,__callStatic() 会被调用。参数由方法,数组组成。

__get(),__set(),一个可以外部调用的属性设为只读,一个只写,参数由成员属性名,成员属性的值组成。

__isset()__unset()在外部使用isset() unset()会调用这两个方法

__sleep()__wakeup()在串行化和反串行化调用输出

__toString()__invoke() __toString可以在echo 对象的时候调用输出字符串,以函数方法调用对象时会触发__invoke()

__clone() 不需要任何参数,当对象使用clone $xxx时被调用,原本对象的引用 $that-> 克隆对象$this->

__set_state() 当调用 var_export() 导出类时,此静态 方法会被调用。

阅读更多 →
共 66 篇文章,7 页
...