php之面向对象

构造方法:public function __construct(){}//new对象时自动触发
析构方法:public function __destruct(){}//对象销毁时自动触发
函数封装:protected function name(){}//在外界不能直接访问
继承:extends
final:被final修饰的类不能被继承
三种权限修饰:public ,protected,private
静态属性和静态方法:可以直接被类名调用,使用static进行修饰,调用方法:$duixiang 类名::属性/方法
全局常量:define('NAME','value');
类常量:只在类内部有效的常量    语法:const NAME = value; 调用方法:与静态属性和方法的调用方法相同;

<?php
//单例设计模式:只能new一个对象
class Single{
	public $rands;
	public static $lis = null;
	final public function __construct(){
		$this->rands = mt_rand(10000,9999999);
	}
	public static function Getlis(){ 
		if(Single::$lis === null){
			Single::$lis = new Single();
		}
		return Single::$lis;
	}
}
var_dump(Single::Getlis());
var_dump(Single::Getlis());
?>

本类:self

父类:parent

本类对象:$this

 

魔术方法:

        __construct,__destruct,__set,__get,__isset,__unset

魔术方法的本质意义在于开发者和调用者对类的控制权

???????????????????? ????????????????????
??
class Foo {
}
$foo = new Foo();
$foo->age = 9;
print_r($foo); // Foo Object ( [age] => 9 )
/
class Bar {
public function __set($per , $value) {
echo '想要设置' , $per,'为' , $value , '<br />';
echo '但是没有这个属性<br />';
}
}
$bar = new Bar();
$bar->age = 9;
print_r($bar); // Bar Object ( )

自动加载:

<?php
function myLoad($class){
	include './'.$class.'.php';
}
spl_autoload_register('myLoad');
new mysql();
?>

抽象类:

在类前加修饰符 abstract

在抽象方法前加修饰符 abstract

抽象方法没有方法体

也可以有已经实现的方法,但只要有一个方法是抽象的,则这个类仍是抽象的

抽象类不能实例化,只能够被继承

接口:

接口里的方法只能是public的

接口使用interface来修饰

一个类可以同时实现多个接口,class a implements b,c,d{}

异常:

throw new Exception('',);

str{}catch(Exception $e){};

命名空间:

namespace name;//写在页面第一行,namespace声明后,其后的类,函数,都被封锁在命名空间内

转载于:https://my.oschina.net/u/3219122/blog/874289

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值