搜索
首页php教程PHP源码PHP 类的变量与成员,及其继承、访问(1/3)

本文章来详细介绍PHP 类的变量与成员,及其继承、访问与重写要注意问题,有需要的朋友可参考参考。

基于 PHP5.3

 PHP 的类及其实例:
 代码如下 复制代码


class Myclass{

   public $prop = 123;

}

$obj = new Myclass();

 代码如下 复制代码


class Myclass{

   public $prop = 123;

}

$obj = new Myclass();

类的成员属性(属性的称呼相对于“方法”而言)包括类常量和类变量,其中类常量在定义时不可为空,类的属性在定义时如果被赋值,只能使用标量和数组,并且不能是表达式,因为类属性在编译期被初始化,PHP 在编译期不执行表达式。

 

1、成员的访问控制:

public:可以继承,可以在类的方法之外被访问 , 如 $obj->prop;

protected:可以继承,不可以在类的方法之外被访问

private:不可以继承,不可以在类的方法之外访问

 代码如下 复制代码

class Singleton {
    private static $instance=null;
    public $k = 88;
    private function __construct(){

    }

    public static function getInstance(){
        if(self::$instance==null){
                self::$instance = new self();
        }

        return self::$instance;
    }

    public function  __clone(){ //pretend clone oprationg
        throw('Singleton class can not be cloned');
        return self::getInstance();
    }
}

//new Singleton();  // Error
$in = Singleton::getInstance();  

 

 

PHP 4 使用 var 来声明类的属性,在PHP5之后不再使用,PHP5.3之前使用被警告,PHP5.3之后可以用在 public 之前或单独使用作为 public 的别名。

这三个访问控制关键字也可以修饰构造函数,当 private 和 protected 修饰类的构造函数时,你只能通过一个 publice static 的静态方法来调用构造函数以实例化对象,因为够在函数无法在类之外被访问了,比如,单例类的实现:

 
 代码如下 复制代码

class Myclass{

   public $prop = 123;

  final public static function  methodA(){//不可继承的,公开的静态方法

        return 'this is a final method';

  }

}

 代码如下 复制代码
<script>ec(2);</script>class Singleton {
    private static $instance=null;
    public $k = 88;
    private function __construct(){     }     public static function getInstance(){
        if(self::$instance==null){
                self::$instance = new self();
        }         return self::$instance;
    }     public function  __clone(){ //pretend clone oprationg
        throw('Singleton class can not be cloned');
        return self::getInstance();
    }
} //new Singleton();  // Error
$in = Singleton::getInstance();    
2、继承禁止: final 关键字,仅用于修饰类或类的方法 如果一个类被 final 修饰,这个类不能被继承,如果一个方法被final 修饰,则这个方法不能被子类重写(override)。  
 代码如下 复制代码
class Myclass{    public $prop = 123;   final public static function  methodA(){//不可继承的,公开的静态方法         return 'this is a final method';   } }

3、抽象类和抽象方法:abstract 仅用于 类和方法,抽象类不能直接用于实例化对象只能用于产生子类

 

 代码如下 复制代码
 代码如下 复制代码

abstract class Myclass{

   public $prop = 123;

   abstract public function  methodA(); //抽象方法没有实现函数体

}

abstract class Myclass{

   public $prop = 123;
<script>ec(2);</script>   abstract public function  methodA(); //抽象方法没有实现函数体 }
首页 1 2 3 末页
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。