Re: Static Array declaration within class PHP5

From: Date: Fri, 21 Jan 2005 19:13:53 +0000
Subject: Re: Static Array declaration within class PHP5
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-206970@lists.php.net to get a copy of this message
Marek wrote:
Hello I'm trying to create a public static array within a class.(PHP5). First - the following fails: class yadayada {
        public static $tester[0]="something";         public static $tester[1]="something 1"; 
of course this doesn't (ok so its obvious to me) first of its generally not good form to initialize a var in the class definition but rather do it with a function. often that would be
                       the constructor - but that won't do it this time.
here is how I would do it (given the facts you provided): class Yadda { private static $myArr; public static function getArr() { if (!isset(self::$myArr)) { self::setupArr(); } return self::$myArr; } private static function setupArr() { self::$myArr = array( 0 => 'something', 1 => 'something1', 2 => 'something2', 3 => 'something3', 4 => 'something4', 5 => 'something5', 6 => 'something6', 7 => 'something7', // notice the trailing comma! ); } } print_r( Yadda::getArr() ); btw: I did not syntax check this code.
Second - However the following works: class yadayada {
        public static $tester = array (0 => "something", 1 >="something 1"); 
you are not forced to write the whole array on 1 line :-) also if you are using numeric keys there is no need to write them...: $tester = array ("something", "something 1"); with or with out the keys its the same (assuming you keys start at zero and are always consecutive)
My question is this: I have an array that has about some 150 different values and using the second example would get very very messy, is there another method of doing this ? The first example(which fails) is the cleanest, is there anything I can do ?
by clean do you mean readable per chance? how readable is the class I just defined according to you?
Thank you


« previous php.general (#206970) next »