例如,考慮類X
,它有一些實用方法('foo','bar')在X
的某些屬性上執行一些操作。這些方法對其他外部變量也很有用。 有些可以實現X
和staticX
類如下:類FooCombinig靜態類和非靜態類
class StaticX
{
public static function foo($p)
{
return $p * $p;
}
}
class X
{
private $p=4;
public function foo()
{
return StaticX::foo($this->p);
}
}
$x= new x;
echo $x->foo();
echo StaticX::foo(3);
但是,這種方法有一定的可維護性的問題。 有沒有更好的解決方案?
請解釋您正在談論的問題。 – BetaRide 2013-03-18 06:48:56
@BetaRide如果你提供'X :: foo',你也可以改變'StaticX :: foo' – PHPst 2013-03-18 06:57:38
如果你使用php 5.4+你可以使用'trait'。請參閱http://php.net/manual/en/language.oop5.traits.php – Bart 2013-03-18 08:37:16