例如,考虑类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