Mám třídu FrontendManager, tady je
abstract class FrontendManager {
private $pageName = 'Helloworld';
public function generateHead (){
echo 'Welcome to'. $this->pageName .' webpage.';
}
}
a třídu layout
class layout extends FrontendManager
{
public function generate() {
FrontendManager::generateHead();
}
}
Když zavolám z indexu layout::generate(); tak mi to vyhodí toto
Fatal error: Using $this when not in object context in ... frontend\FrontendManager.php on line 7
Kdyby někdo věděl proč to tohle píše popř. jak to fixnout, tak by mi to moc pomohlo
Fórum › PHP
OOP PHP Using $this when not in object context
I proměnná musí být nadefinovaná jako statická a pak se volá:
echo self::$pageName;
To Yety : Objekt se do proměnné $this přiřadí až po vytvoření instance pomocí "new ...". Pokud ale saháš na statický objekt, žádné $this vytvořeno není. Asi to vysvětluji zmateně, ale je to celkem logické. Objekt může mít vlastnosti static, které jsou pro tento objekt jediné. Pokud ale vytvoříš novou instanci, můžeš používat i proměnné pro danou instanci.
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 49 hostů
Podobná vlákna
Object reference not set to an instance of an object. — založil whysper
Mé dotazy na OOP v PHP — založil polonium
PHP OOP začátečník — založil th
PHP a pochopení OOP — založil šnek
Moderátoři diskuze