Ich versuche statische Methode zu verwenden (ich möchte keine Klasse instanziieren). und ich lege dieses Beispiel.Statische Methode/Funktion der Klasse in PHP
<?php
class RootClass {
const Member = 20;
public static function Member() {
return self::Member;
}
}
class NewClass {
private $ValNewClass = "";
private function InitNewClass() {
$this->ValNewClass = RootClass::Member();
}
public static function GetNewVal() {
$this->InitNewClass();
$Validation = true;
if ($this->ValNewClass>10){
echo "greater than 10";
$Validation = false;
} else {
echo "Not greater than 10";
}
return $Validation;
}
}
$Val2 = NewClass::GetNewVal(); //It must print "greater than 10"
?>
Ich muß wissen, wo mein Fehler ist. Dies ist kein echter Code, nur eine einfache Form für Fragen.
Vielen Dank.
Warum '$ this' hier:' $ this-> InitNewClass(); '? –
Als Randbemerkung verwenden Sie die richtige Namenskonvention, ALL_CAPS für Konstanten, lower_case() oder camelCase() für Funktionsnamen und $ Variablen und First_letter_uppercased für Klassennamen. –
Sie können nicht '$ this' statische Methoden verwenden, ändern Sie es in' self' – rdo