Я бы назвал нестатический метод в статическом методе. напримерЕсть ли способ вызова нестатического метода в статическом методе
Вместо вызова метода следующий
$user = new User();
$userdata = $user->data($argument);
Я хотел бы назвать как следующий
$usedata = User::data($argument);
Во-первых, я построю следующим заходящего
Class User{
public static function __callStatic($methodname, $argument) {
$objName = __CLASS__;
$obj = new $objName;
return $obj->find($argument);
}
public function find($argument) {
return $argument*2;
}
}
echo User::find(2);
Но это show Предупреждающее сообщение, но код успешно выполнен. Есть ли еще лучшее решение для этого сценария? Извините за любую ошибку грамматики, которую я сделал с тех пор, как я не являюсь носителем языка, и я не очень свободно владею английским языком.
Статические методы не имеют контекста; нет переменных экземпляра для работы, поэтому нет смысла вызывать нестатический метод в статическом методе. Каким будет контекст нестатического метода? Если у него нет контекста, сделайте его статичным. Если у него есть контекст, то также ваш статический метод, в этом случае вы должны сделать свой статический метод нестатичным. – kba