资讯专栏INFORMATION COLUMN

php 面向对象

Eirunye / 1500人阅读

摘要:面向对象万事万物皆对象面向对象英语,缩写是软件开发方法。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

面向对象

万事万物皆对象

面向对象(英语:Object-oriented programming,缩写:OOP)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术[1] 发展到一定阶段后的产物。

类 − 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作

对象 − 是类的实例。

php 类

创建一个简单的类

   

实例化对象类


类的控制访问

public(公有):公有的类成员可以在任何地方被访问。

protected(受保护):受保护的类成员则可以被其自身以及其子类和父类访问。

private(私有):私有的类成员则只能被其定义所在的类访问。

类的属性与方法

属性-> 就是类里边的变量

方法-> 类里边的方法

aa();

?>
类的常量

const 关键字

class MyClass
{
    const constant = "常量值";

    function show() {
        echo  self::constant;
    }
}

echo MyClass::constant ;
类的构造方法和析构方法

类的继承以及final

extends 关键字

aa();

?>

final 关键字

aa();

?>
调用父类构造方法

parent 关键字


static关键字

命名空间

namespace 必须放在代码的第一行


以下类型会受到命名空间的影响

类(包括抽象类,traits),接口,函数,常量

简单调用命名空间的类

use va;

var_dump(new a());

重命名

use va as a2;

var_dump(new a2());
导入函数

导入函数

类的自动加载

__autoload()函数 php内置的


后期的静态绑定 魔术变量
class Test{
    
    private $abc = "";
    
    public function setAbc( $val ){
        
        $this->abc = $val;
        
    }
    
    public function getAbc( $val ){
        
        $this->abc;
        
    }
    
}

$test = new Test();

$test->setAbc("abc");
var_dump($test->getAbc());

__set

__get

class Test{
    
    private $abc = "";
    
    public function __set( $name,$val ){
        
        $this->$name = $val;
        
    }
    
    public function __get( $name ){
        
        $this->$name;
        
    }
    
}

$test = new Test();

$test->abc = "1234567";
var_dump($test->abc)

isset

class Test{
    
    private $abc = "abc";
    
    public function __isset($val){
        return isset($test->$val) ? true : false; 
    }
    
    
}

$test = new Test();

var_dump(isset($test->abc));

__unset

class Test{
    
    private $abc = "abc";
    
    public function __unset($val){
       
       echo("__unset:" . $val);
       unset($this->$val);
       
    }
    
    
}

$test = new Test();

unset($test->abc);

__call

class Test{
    
    public function __call($func,$cs){
        
        echo($func);//方法名
        print_r($cs);//传入的参数
        
    }
    
    
}

$test = new Test();

$test->go(1,ok);

__callStatic

class Test{
    
    public static function __callStatic($func,$cs){
        
        echo($func);//方法名
        print_r($cs);//传入的参数
        
    }
    
    
}

Test::go();

__invoke 当对象被当作函数调用时执行的

class Test{
    
    public function __invoke($func){
        
        var_dump($func);
        
    }
    
    
}

$test = new Test();

$test("asadasd");

__toString 当你打印对象的时候执行

class Test{
    
    public function __toString(){
        
        return "hello....";
        
    }
    
    
}

$test = new Test();

echo($test);
对象拷贝和类型约束

浅拷贝

    class A{
        
        public $age = 10;
        public $name = "";
        
        public $name = null;
        
    }

    $a = new A();
    
    $b = $a;
    
    $b->age = 1;
    
    var_dump($a->age);

深拷贝

    class A{
        
        public $age = 10;
        public $name = "";
        
        public $name = null;
        
    }

    $a = new A();
    
    $b = clone $a;
    
    $b->age = 1;
    
    var_dump($a->age);

类型约束

    class A{
    
        public $name = "";
        
        public function go(){
            echo "12345678900987654321";
        }
        
    }

   function text(A $a){
       $a->go();
   }
    text(new A());
Trait关键字

php单继承 只能继承一个类

trait Bt{
    
    public function a(){
        echo "aaa";
    }
    
    public function b(){
        echo "bbb";
    }
    
    public function c(){
        $this->a();
        $this->b();
    }
    
}

class Text{
    
    use Bt;
    
}

$test = new Test();
$test->c();
接口类和抽象类以及设计模式

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30667.html

相关文章

  • PHP面试之面向对象(1)

    摘要:二面向对象有什么特征面向对象的主要特征有抽象继承封装和多态。析构函数析构函数是在引入的,它的作用与调用时机和构造函数刚好相反,它在对象被销毁时自动执行。 PHP面试专栏正式起更,每周一、三、五更新,提供最好最优质的PHP面试内容。PHP中面向对象常考的知识点有以下7点,我将会从以下几点进行详细介绍说明,帮助你更好的应对PHP面试常考的面向对象相关的知识点和考题。整个面向对象文章的结构涉...

    phodal 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    李昌杰 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    Lyux 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    AaronYuan 评论0 收藏0
  • PHP面试常考内容之面向对象(3)

    摘要:面试专栏正式起更,每周一三五更新,提供最好最优质的面试内容。继上一篇面试常考内容之面向对象发表后,今天更新面向对象的最后一篇。面向对象的主要特征为封装继承多态。为了提高内聚性减少引起变化,单一原则是低耦合高内聚的面向原则上的引申。 PHP面试专栏正式起更,每周一、三、五更新,提供最好最优质的PHP面试内容。继上一篇PHP面试常考内容之面向对象(2)发表后,今天更新面向对象的最后一篇(3...

    xfee 评论0 收藏0
  • PHP面向对象编程:面向对象概念、基本实践、高级实战、PHP面向对象特殊实践

    摘要:一面向对象的概念什么是面向对象世间万物皆对象,抽象的也是对象,一切可见或不可见都是对象对象的基本组成对象包含两个部分对象的组成元素是对象的数据模型,用于描述对象的数据又称为对象的属性,或者对象的成员变量对象的行为是对象的行为模型,用于描述对 一、面向对象的概念 1.1 什么是面向对象(object oriented)      世间万物皆对象,抽象的也是对象,一切可见或不可见都是对象 ...

    worldligang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<