Php 不需要实例化类对象的类方法
下面是今天使用方法()的类。是否可以调用today(),而不需要实例化的类对象来运行它 i、 e.不使用MyDateClass::today()Php 不需要实例化类对象的类方法,php,class,methods,Php,Class,Methods,下面是今天使用方法()的类。是否可以调用today(),而不需要实例化的类对象来运行它 i、 e.不使用MyDateClass::today() MyDateClass::today()-这意味着调用静态方法,静态方法不会创建类的实例,除非存在创建实例的代码。但是你的today()不是静态的(没有staticword) 静态函数更像是一个简单的函数,而不是类方法 Class MyDateClass { public $mm; public $dd; public $yy
MyDateClass::today()
-这意味着调用静态方法,静态方法不会创建类的实例,除非存在创建实例的代码。但是你的today()
不是静态的(没有static
word)
静态函数更像是一个简单的函数,而不是类方法
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
不,读问题again@Dagon对我来说,没有什么听起来很正确:)那是因为它是正确的;-)我认为这个问题需要重新表述,
将类属性或方法声明为静态,这样就可以在不需要实例化类的情况下访问它们。
,所以从技术上讲,这样做MyDateClass::today()
,在没有实例化类的情况下调用函数。@mdoong-除非您必须为此将该方法定义为静态,或者禁止那些告诉您正在做错事的可怕警告内容听起来不错,我认为这个问题的措辞不清楚。谢谢
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