. PHP Design Patterns

PHP Design Patterns PHP OO Static Basics

PHP Static Basics


Here are examples of creating and using static variables and function in a class.

The static variable $red is called by the function getStaticVarRed() and the static function staticGetStaticVarRed(), as well as directly by testOOPHPStatic.

Note that within it's own class a static variable or funtion should be referenced by self::variable or self::function(), instead of using this->. In an other class a static should be referenced byt the full name of the class with a double colon and the name of the variable or function, such as classname::$varname or classname::functioname().





OOPHPStatic.php

//copyright Lawrence Truett and FluffyCat.com 2007, all rights reserved

//OOPHPStatic - a simple OO PHP Class with // a static variable and function class OOPHPStatic { //a static variable, static $red = 'RED'; public function getStaticVarRed() { return self::$red; }

public static function staticGetStaticVarRed() { return self::$red; } }
download source, use right-click and "Save Target As..." to save with a .php extension.


testOOPHPStatic.php

//copyright Lawrence Truett and FluffyCat.com 2007, all rights reserved

include_once('OOPHPStatic.php');

define('BR', '<'.'BR'.'>');

echo 'TESTING OOPHPStatic'.BR; echo BR; echo 'test 1 - show the static var directly'.BR; echo 'red: '.OOPHPStatic::$red; echo BR.BR;

echo 'test 2 - show the static var using a class instance'.BR; $classOne = new OOPHPStatic(); echo 'red: '.$classOne->getStaticVarRed(); echo BR.BR;

echo 'test 3 - show the static var using a static function'.BR; echo 'red: '.OOPHPStatic::staticGetStaticVarRed(); echo BR.BR;

echo 'END TESTING OOPHPStatic'.BR;
download source, use right-click and "Save Target As..." to save with a .php extension.


output of testOOPHPStatic.php

TESTING OOPHPStatic

test 1 - show the static var directly red: RED

test 2 - show the static var using a class instance red: RED

test 3 - show the static var using a static function red: RED

END TESTING OOPHPStatic


References


Design Patterns
Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

PHP 5
The Official PHP web site
Core PHP Programming, 3rd Edition by Leon Atkinson and Zeev Suraski