2008/10/23 Alain Roger <[EMAIL PROTECTED]>:
> thanks a lot, this is exactly what i needed.
> if the construct of based class A accept arguments, i guess that construct
> of class B must have the sames.
No, you can change the signature of a method when you overload it.
Below, B::__construct() accepts 1 argument while A::__construct()
accepts 0 arguments:
class A
{
function __construct()
{
echo "A";
}
}
class B extends A
{
function __construct( $string )
{
echo $string;
parent::__construct();
}
}
$B = new B( "B" );
If you need to force a certain signature in child classes, you can
declare the parent class abstract:
abstract class A
{
abstract function f( $a );
}
class B extends A
{
function f( $a, $b ) // throws an error
{
echo "$a, $b";
}
}
$B = new B("B", "C");
However, if you declare the constructor as abstract, it will be ignored.
--
http://www.otton.org/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php