PHP细碎基础知识总结-----面向对象篇

1.常量的定义:

在类内部

const $PI=3.14;

调用:类内部 self::$PI

类外部:类名::$PI;

外部

define("PI",3.14);

2.static静态属性

作用:定义静态变量,静态变量的范围是整个主函数,所以相当于全局变量,而在类中以static声明的变量不属于任何具体对象,而是属于整个类的公共变量;在类中,静态方法不用创建具体对象就可以直接调用。

类内部静态变量的创建:

public static $a=15;

调用:

内部:注意,不能用$this,因为this是调用当前对象的,而static变量则属于类的,属于具体的对象,应该用self::$a,静态方法在内部用self::方法名();

在类外,类名::$a,静态方法的调用:类名::方法名()

3.抽象类

使用abstract修饰的类称为抽象类

关于抽象类

1.不能被实例化

2.子类要么实现抽象方法,不实现也变成抽象类

3.抽象类中可以包含非抽象方法

4.抽象类的作用:为子类提供规范,限制实例化

例子:

<?php  
abstract class Animal
{
	
	abstract function cry();
	function eat(){
		echo "我吃什么?";
	}
}
class Cat extends Animal{
	function cry(){
		echo "喵喵";
	}
}
$cat=new Cat();
$cat->cry();
?>

4.接口 

声明:interface

实现:implements

关于接口:

1.为什么会有接口?

接口的存在是为了子类提供规范,也可以在一定程度上解决PHP不能多继承的问题。

2.接口使用的一些规则:

1)接口不能实例化

2)接口中所有的方法必须是抽象方法,但不用abstract修饰

3)接口中不能有变量属性,只能用常量

4)接口之间可以实现多继承,用逗号隔开

5.trait

作用:模拟多继承问题

优先级问题:

在有相同方法名的是,当前类的方法会覆盖trait方法,trait方法会覆盖父类方法

例子:

<?php
class Base {
    public function sayHello() {
        echo 'Hello ';
    }
}

trait SayWorld {
    public function sayHello() {
        parent::sayHello();
        echo 'World!';
    }
}

class MyHelloWorld extends Base {
    use SayWorld;
}

$o = new MyHelloWorld();
$o->sayHello();
?>

结果输出:

hello world

命名空间

定义:

namespace test;

使用:

use test as myplace;

注:在实际编程中,不建议在一个文件中使用多个命名空间。

猜你喜欢

转载自blog.csdn.net/sinat_35161044/article/details/81913903