Posted by raghuanandy@gmail.com on 01/13/07 11:38
Sanders Kaufman wrote:
> Michael Fesser wrote:
> > .oO(Sanders Kaufman)
> >
> >> I read that, but I'm still a little confused.
> >> When I use a class's methods and such, I've been using "->".
> >> But it seems like this "::" is used the same way.
> >> What's the difference?
> >
> > $someObject->method()
> > someClass::staticMethod()
> >
> > '->' requires an instance of a class, whereas '::' is used to call
> > static class methods or constants without having an object. Additionally
> > it's used to call inherited methods.
>
> D'oh!
> I thought I had it - but then you said something about static stuff.
> And I think I'm futzed up about Object v. Class here.
>
> So let's see if I've got it better this way:
>
> I call my OBJECT methods with "->".
> I call my CLASS methods with "::".
>
> Ja?
Right
<?
class A{
public static $a = 'Hello';
public $b ='World';
public function __construct()
{
$this->b = 'Hello World';
}
public function NonStatic()
{
print "\nHere value of b is: ".$this->b;
//Static members can be accessed though within object methods
print "\nA value is: ".self::$a;
}
public static function StaticMethod()
{
print "\n A value is: ".self::$a;
//This will not work, cannot access object variables(members) within
Static methods
//print "\n B value is : ".$this->b;
}
} //end class
$obj1 = new A();
A::StaticMethod();
$obj1->NotStatic();
?>
Hope this clarifes
[Back to original message]
|