Kontext tridy rubrika: Programování: PHP

5 error414_1
položil/-a 4.12.2014

Nasel jsem zajimave chovani objektu v PHP, vubec netusim co je to za ficuru

class Foo{
 
  public $name = 'petr';
 
  public function myName(){
    return $this->name;
  }
}
 
 
class FooFoo{
 
  public $name = 'PAVEL';
 
  public function myName(){
    return Foo::myName(); 
  }
}
 
$c = new FooFoo();
echo $c->myName();// PAVEL

po tomhle volani bude v $this instance objektu FooFoo, predpokladal jsem ze PHP zarve jako pri volani

//$c = new FooFoo();
//echo $c->myName();// PAVEL
 Foo::myName(); // <b>Fatal error</b>:  Using $this when not in object context on line <b>6</b><br />

To je bug nebo ficura zhuleneho vyvojare?

BTW: pomineme ze to tak nekdo napsal, hold porozumeni programu od jineho vyvojare je soucast skillu programatora

odkaz
4 jasir
odpověděl/-a 4.12.2014

Je to opravdu o přenášení $this. A je to DEPRECATED od PHP 5.1.3, čili pokud programujete ve STRICT mode (což je podle mě v PHP prostě nutnost), vyhodí to warning.
Viz: http://3v4l.org/iUkF2

Pro zobrazení všech 8 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.