>> is it possible to overload the class construct(or) ?
>> if yes, how ?
No, it's not.
> class A
> {
> function __construct()
> {
> echo "A";
> }
> }
>
> class B extends A
> {
> function __construct()
> {
> echo "B";
> parent::__construct();
> }
> }
> $B = new B();
The above is an example of overriding, not overloading; PHP allows the
former but not the latter.
Examples of overloading include:
class A
{
function myFunc( $boolean )
{
}
function myFunc( $string )
{
}
function myFunc( $array )
{
}
}
Because PHP is loosely typed, the above is largely moot/unnecessary.
class B
{
function myFunc( $boolean )
{
}
function myFunc( $boolean, $string )
{
}
function myFunc( $boolean, $string, $array )
{
}
}
PHP allows you to get around the above by allowing you to define
default values for arguments. Doing that is kind of like overloading
but only in a fake-me-out kind of way. So instead of overloading the
myFunc method, you could just define it as follows:
class B
{
function myFunc( $boolean = FALSE, $string = '', $array = array())
{
}
}
but even that doesn't ensure that the data type of each argument is as
you might expect. As I stated above, PHP is loosely typed so there is
nothing preventing, say, the $string argument from actually being a
numeric datatype. If you are using PHP5+, you can sort of get around
that by using type hinting
(http://us.php.net/manual/en/language.oop5.typehinting.php) but you
can only type hint objects and arrays.
In closing, to answer your question,
Overriding: yes
Overloading: no
thnx,
Chris
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php