不需要实例化类对象的类方法

时间:2015-05-17 22:33:56

标签: php class methods

所以这是今天使用方法的类()。是否可以调用today()而不需要实例化的类对象来运行它?

即。不使用MyDateClass :: today()

<?php
    Class MyDateClass
    {
        public $mm;
        public $dd;
        public $yyyy;

        function __construct($mm, $dd, $yyyy)
        {
            $this->mm = $mm;
            $this->dd = $dd;
            $this->yyyy = $yyyy;
        }

        function today()
        {
            return date('Y-m-d');
        }
    }
?>

1 个答案:

答案 0 :(得分:0)

MyDateClass::today() - 这意味着您调用静态方法,并且静态方法不创建类的实例,除非存在创建实例的代码。但是,today()不是静态的(没有static字)。

静态函数更像是一个简单的函数而不是类方法。

Class MyDateClass
{
    public $mm;
    public $dd;
    public $yyyy;
    public $timestamp;

    function __construct($mm, $dd, $yyyy)
    {
        $this->mm = $mm;
        $this->dd = $dd;
        $this->yyyy = $yyyy;
    }
    function printDate(){
        echo $this->dd.'.'.$this->mm.'.'.$this->yyyy;
    }
    static function today()
    {
        return date('Y-m-d');
    }
}
MyDateClass::today(); // no instance
$instance1 = new MyDateClass('01','05','2015'); //instance1
$instance2 = new MyDateClass('01','05','2014'); //instance2
$instance1->printDate(); // prints 05.01.2015
$instance2->printDate(); // prints 05.01.2014