Disclaimer: Yes, I am forced to support PHP 4.3.0. I know it's dead. No I can't upgrade it, because I'm dealing with multiple servers some of which I don't have su access.
Bu PHP5 özel beri ben self::
kullanamazsınız çünkü Peki, nasıl bir PHP4 sınıfta statik uygulama hakkında gitmeli? Şimdiye kadar benim araştırma ben en azından sadece bir işlev bağlamda, ben $ _GLOBALS kullanan başka bir yöntem gördüm ama ben kullanarak olacak sanmıyorum dışında static
anahtar sözcüğünü kullanabilirsiniz görünüyor söyledi.
Sadece biz aynı sayfada ben 4 bu PHP5 statiği erişmek için gereken konum:
public static $_monthTable = array(
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
public static $_yearTable = array(
1970 => 0, 1960 => -315619200);
Şimdiye kadar, ben bir bulunmazsa eğer temelde bir statik değişkeni ayarlar benim kendi fonksiyonu ile geldim, ve ben içine bütün statik özellikleri kodlamalısınız. Ancak, ben örneğinin değildir ve hiçbir yapıcı ben kullanamıyorum, yani ateş varsayarak, ben aynı sınıfta anter yöntem içinde bu statiği başvuru nasıl tamamen emin değilim $this
.
class DateClass {
function statics( $name = null ) {
static $statics = array();
if ( count( $statics ) == 0 ) {
$statics['months'] = array(
'Jan', 'Feb'
);
}
if ( $name != null && array_key_exists($name, $statics ) ) {
return $statics[$name];
}
}
};
var_dump( DateClass::statics('months') );
Question #1: bu uygulanabilir mi? Ben farklı bir yöntem kullanarak denemelisiniz?
Question #2: nasıl aynı sınıfta bir yöntem statiği başvurur? Ben denedim __CLASS__::statics
ama ben gerçekten bir yöntem çağrılırken değilim __CLASS__
sadece bir dize olduğunu düşünüyorum.
Note: I Apache2'nin + / + IIS6 üzerinde kullanılacak bir çerçeve içine bu uygulama olacak, PHP 5.2, OSX / Linux / Windows PHP4.3.0.