如何不允许在PHP中定义子类方法

How can I prevent the something method below to be created in the foo class ?

class fooBase{

  public function something(){

  }
}

class foo extends fooBase{

  public function __construct(){
    echo $this->something(); // <- should be the parent class method
  }

  public function something(){ 
    // this method should not be allowed to be created
  }
}

Use the final keyword (like in Java etc):

class fooBase{

  final public function something(){

  }
}

class foo extends fooBase{

  public function __construct(){
    echo $this->something(); // <- should be the parent class method
  }

  public function something(){ 
    // this method should not be allowed to be created
  }
}

See PHP Final keyword. Note that foo will still have a method something, but something will only come from fooBase and foo can't override it.

Use the final keyword.

In your parent:

final public function something()

You can use final to prevent base methods being overwritten.

class fooBase{

  final public function something(){

  }
}