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



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



Reply via email to