Re: PHP5 Class problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



electroteque wrote:

On 29/01/2005, at 12:02 AM, Jochem Maas wrote:



classes cannot be defined as static - defining them as abstract has the effect
of being able to only use a given class statically (unless you subclass it and the subclass
is not abstract).



abstract as in it is the final base class ?


no abstract as in 'cannot be instantiated' try running the following:

abstract class MyClass
{
	public function __construct()
	{
		echo "boo!";
	}
}

$mc = new MyClass;

the 'final' keyword is used to declare that a class or method cannot be
overridden by (or in) a subclass.


variables inside it, or its only meant to stay in the one static method so


yes you can use variables - but not member variables because $this is not defined in functions
that are declared static - bare in mind you can call a method statically even though its not
marked as static (just be sure you don't reference $this).


i meant member vars , what is the point of static methods anyway ?

difficult question. a start would be to say that static methods offer a neat way to organise your code (sort of cheapmans namespace).

PHP5 also offers static class vars:

abstract class MyClass
{
	static private $val;

	static public function set($v)
	{
		self::$val = $v;
	}

	static public function speak()
	{
		if (!is_null(self::$val)) {
			echo self::$val."\n";
		} else {
			echo "<silence>\n";
		}
	}
}

MyClass::set("yeah");
MyClass::speak();




sidenote: the php4 trick of overwriting $this does not work in PHP5.




that i cant live with


good ;-) ... the reason it doesn't work is the same reason PHP5 objects are soooo much cooler, namely a rewritten object model. thank the gods!

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux