什么是面向对象?面向对象的简单了解!返回列表
上传时间:2015-02-02 内容关键字:什么是面向对象?面向对象的简单了解!
五、重写和重载:
1. 重写/覆盖:
概念:override,子类重写了父类的同名方法。
2. 重载:
概念:overload,在java,C++中,同一个类中存在多个同名方法,但是参数类型、个数不同,传入 不同的参数,就可以调用不同的方法。但是在PHP中,不允许存在同名的方法,因此不能够完成 Java,C++中的这种重载效果。格式如下:
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-fpm 基础介绍
- 下一篇:COOKIE、SESSION之彻底搞定!