我认为这是非常基本的功能,请帮忙。 如何在php中将非静态方法调用为静态方法。
class Country {
public function getCountries() {
return 'countries';
}
public static function countriesDropdown() {
$this->getCountries();
}
}
答案 0 :(得分:5)
最好使getCountries()
方法静态。
<?php
class Country {
public static function getCountries() {
return 'countries';
}
public static function countriesDropdown() {
return self::getCountries();
}
}
$c = new Country();
echo $c::countriesDropdown(); //"prints" countries
添加self
关键字会显示 PHP严格标准通知要避免,您可以创建同一个类的对象实例并调用相关的方法用它。
<?php
class Country {
public function getCountries() {
return 'countries';
}
public static function countriesDropdown() {
$c = new Country();
return $c->getCountries();
}
}
$c = new Country();
echo $c::countriesDropdown(); //"prints" countries
答案 1 :(得分:1)
您甚至使用Class Name
public static function countriesDropdown() {
echo Country::getCountries();
}
答案 2 :(得分:1)
你不能直接这样做,因为你需要创建一个类的实例&amp;必须调用非静态方法,
class Country {
public function getCountries() {
return 'countries';
}
public static function countriesDropdown() {
$country = new Country();
return $country->getCountries();
}
}
<强> DEMO 强>