PHP面向对象-静态变量

                              PHP面向对象-静态变量

普通成员(普通属性、普通方法),还有静态的成员(静态属性、静态方法):类型说明符static关键字

<?php
    class Student
    {
        //静态成员属性
        private static $count=46;

        //静态成员方法
        public static function showinfo(){
            $str = "班级人数:".Student::$count;//静态成员在类的内部访问
            echo $str."<br>";
        }
    }
    $b1 = new Student();
    $b1->showinfo();
    echo Student::showinfo();//在类的外部访问

静态属性:就是类的属性,与类相关,与对象无关;静态方法:就是类的方法,与类相关,与对象无关。通过“类名::”来调用

静态属性或静态方法,在内存中只有一个,被所有对象去共享;好处:就是为了节省内存。

设置单例模式:

一个类只能有一个对象,只提供私有的构造函数,含有一个该类的静态私有对象,提供一个静态的公有的函数用于创建或获取它本身的静态私有对象,有一个private的clone方法,防止克隆。

对象之间的赋值clone:对象之间的赋值,实际就是引用赋值,两个对象之间赋值后,就是一个对象了。所以当一个对象的内容发生变化后,另一个对象的内容也会发生变化。

普通变量之间的赋值,如果也想使用引用赋值,必须使用&,如:$name2 = &$name1.

复制一个对象,使用clone 可以实现,例如:$s2 = clone $s1;   例子属于浅克隆。

命名空间的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生错误。

命名空间通过关键字namespace 来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。

<?php
    namespace model; //定义命名间
 
    //类Student在model命名空间中
    class Student
    {
        public function say(){
            echo 'hello';
        }
    }

使用  use model\Student;  //引入 model命名空间的Student 类。

引入命名空间的类时,也可以给类重新命名,原有的类名不能再使用。

使用  use model\Student as Stu;   //引入 model命名空间的Student 类,并重命名为Stu

在有些场景下必须给类重新命名,比如还有一个类也是Student,如何同时使用这两个student类:写到一起

use model\Student as StuModel;

use controller\Student as StuController;

魔术方法:PHP中把以两个下划线__开头的方法称为魔术方法,构造方法__construct,析构方法 __destruct。

__autoload(),这是一个自动加载函数,spl_autoload_register()会取代__autoload()

<?php
    spl_autoload_register('myautoload');
    function myautoload($class)
    {
        $file = __DIR__ . '\\' . strtolower($class) . '.php';
        if (is_file($file)) {
            require_once $file;
        } else {
            echo $file . '不存在';
        }
    }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值