Portál AbcLinuxu, 25. října 2025 20:07
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.
.. Poradí někdo? Děkuji
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.