Portál AbcLinuxu, 12. května 2025 05:24
Strict Standards: Non-static method news::content() should not be called statically, assuming $this from incompatible context
Řešení dotazu:
$objekt=new news;
a volat ji $objekt->content();
$object = new news(); echo $object->content();něco jako
echo new news()->content();Dík
__toString()
, která vrací string. Použití je pak jednoduché:
echo new news('parametry',$pro,'konstruktor');Ještě jeden dobrý zvyk: Dávej názvům tříd velké písmeno na začátku, lépe se to čte.
echo new News('parametry',$pro,'konstruktor');
class Menu{ public function menu_creating($array){ /* kod */ } public function user($array){ /* Tady nevím jak zavolat fci menu_creating() */ } public function user($array){ /* Tady nevím jak zavolat fci menu_creating() */ } }
menu_creating
statická, pak Menu::menu_creating($blabla);
, pokud ne (v tomhle tvém kódu není), tak $this->menu_creating($blabla);
.
Menu::menu_creating($blabla);použil
self::menu_creating($blabla);viz článek na Intervalu.
self
.
class Test{ public function __toString($pdo){ $page = false; foreach ($pdo->query("SELECT * FROM text LIMIT 10") as $row) { $page .= $row['nadpis']."
"; } return $this->page; } } echo New Test($pdo);
<?php class Test{ private $cnt = NULL; function __construct ($cnt){ $this->cnt = $cnt; } public function __toString(){ $r = ''; for($i=0;$i<$this->cnt;$i++) $r .= "Num: $i\n"; return $r; } private function getCntPlus10(){ return $this->cnt + 10; } static public function Iam(){ return "I'am Test"; } public function foo(){ return self::Iam() . ", cnt + 10 = " . $this->getCntPlus10(); } } echo new Test(3),"\n\n"; $o = new Test(32); echo $o->foo();PS: to
$page .= $row['nadpis']…
lze zapsat i čitelněji $page .= "${row['nadpis']}\n";
class Test { function __construct($pdo) { $this->pdo = $pdo; } private $pdo; function __toString($pdo) { $page = ''; foreach ($this->pdo->query("SELECT * FROM text LIMIT 10") as $row) { $page .= $row['nadpis']."\n"; } return $page; } } echo new Test($pdo);http://cz.php.net/manual/en/language.oop5.magic.php#object.tostring
a odsuň to z __toString($pdo)
→ __toString()
:)
static
zapomeň. Dokud nevíš k čemu je, tak to nepotřebuješ. Naděláš tím víc škody než užitku. Slovíčka new
a $this
ti budou zatím stačit.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.