• 微信:
  • hai764003
  • QQ:
  • 511211014
  • E-mail:
  • jaquery@163.com

案例总数51

访问总数312422

收藏总数310953

什么是面向对象?面向对象的简单了解!返回列表

上传时间:2015-02-02 内容关键字:什么是面向对象?面向对象的简单了解!


五、重写和重载:


1. 重写/覆盖:

概念:override,子类重写了父类的同名方法。

2. 重载:

概念:overload,javaC++中,同一个类中存在多个同名方法,但是参数类型、个数不同,传入 不同的参数,就可以调用不同的方法。但是在PHP中,不允许存在同名的方法,因此不能够完成 JavaC++中的这种重载效果。格式如下:


class Stu extends Human{

public function say($a){

echo "切克闹",$a;

}

public function say($a,$b,$c){  //PHP中,错误的用法

echo $a,$b,$c;

}

}


但是,PHP的灵活,能达到类似的效果:


class Calc{

public function area(){

$args = func_get_args();

if (count($args)==1) {

return 3.14*$args[0]*$args[0]; //求圆形面积

}else if (count($args==2)) {

return $args[0]*$args[1];//求四边形面积

}else{

return '未知图形';

}


}

//上面的这个方法,就代替了下面这种在java中的方法重载的方法,

而在PHP中的错误用法。也达到了同样的效果。

public function area($a){

return 3.14*$a*$a;

}

public function area($a,$b){

return $a*$b;

}

}

$calc = new Calc();

echo $calc->area(10),'
';

echo $calc->area(5,8);


六、类常量:


1. 普通常量: define定义的常量全局有效,无论是页面内,函数内,都可以访问。


define(‘常量名’, ‘常量值’);


2. 类常量: 专门在类内发挥作用的常量。


const HEAD = 1;


Human::HEAD;


1. 作用域在类内,类似于静态属性,用const声明,前面不加修饰符。

2. 必须是一个定值,不可改变的静态属性。

3. 在定义和使用常量的时候不需要使用$符号。


3. 魔术常量:


1. 无法手动修改他的值,所以叫做常量

2. 但是他的值又是随着环境的变动改变的,所以叫做魔术常量。


__LINE__  : 返回当前的行号。在框架中,可以用来在debug时,记录错误的行号。



__FILE__  : 返回文件的完整路径和文件名。在框架开发或者网站初始化脚本中,用来计算网 站的根目录。如果用在被包含文件中,则返回被包含的文件名。自  PHP 4.0.2  起,__FILE__总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径), 而在此之前的版本有时会包含一个相对路径。


__DIR__ :

文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它 等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。PHP 5.3.0中新增)


__FUNCTION__ :

函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区 分大小写)。在 PHP 4 中该值总是小写字母的。


__CLASS__ :

类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区 分大小写)。在 PHP 4 中该值总是小写字母的。




__METHOD__ :

类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。




__NAMESPACE__ :

当前命名空间的名称(大小写敏感)。这个常量是在编译时定义的(PHP 5.3.0 增)


 

小海哥推荐你看: 博客园  php教程分享网站  phpmywind  脚本之家