搜索

首页  >  问答  >  正文

php直接用类名调用静态方法会不会触发类或者父类的构造函数?

如题,php直接用类名调用静态方法,两个问题:

1 会调用当前类的构造函数吗?

2 会调用当前类的父类的构造函数吗?

淡淡烟草味淡淡烟草味2744 天前1462

全部回复(3)我来回复

  • 欧阳克

    欧阳克2017-07-07 10:36:10

    你应该动手测试一下,浏览器是最好的老师
    实例一:
    <?php
    class A{

    function __construct(){echo"A::构造函数";}
    static function myFun(){echo "你好,很高兴为你答题!";}

    }
    A::myFun();
    ?>
    实例二:
    <?php
    class A{

    function __construct(){echo"A::构造函数";}

    }
    class B extends A{

    static function myFun(){echo "你好,很高兴为你答题!";}

    }
    B::myFun();
    ?>

    回复
    0
  • 给我你的怀抱

    给我你的怀抱2017-07-07 10:36:10

    1.不会
    2.不会

    构造方法只在实例化时调用,静态方法没有实例生成,不会调用构造方法

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-07-07 10:36:10

    不会的,只要在一个类被实例化的时候才会调用其构造方法,静态方法是存储在静态代码区的,是随着类的加载而被加载进来的。

    回复
    0
  • 取消回复