wywołanie metody klasy przy tworzeniu obiektu

0

czy w PHP można w jakiś sposób wywołać metodę klasy bezpośrednio na tworzonym obiekcie?
dla uproszczenia, przykładowa klasa:

class Test{
 
        private $x;
 
        function __construct($x)
        {$this->x=$x;}
 
        function zwroc()
        { return $this->x;}
}
$liczba = new Test(10)->zwroc();
echo $liczba;
//lub
echo new Test(10)->zwroc();
0

spróbuj w nawias wziąć: (new Test(10))->zwroc()
jak nie pójdzie to pewnie jakiś głupi dziwny trik trzeba zastosować, więc lepiej sobie odpuścić...

0
krwq napisał(a):

spróbuj w nawias wziąć: (new Test(10))->zwroc()
jak nie pójdzie to pewnie jakiś głupi dziwny trik trzeba zastosować, więc lepiej sobie odpuścić...

To nie ma prawa zadziałać. Nie da się, teoretycznie można by zrobić:

($wtf = new Test(10))->zawroc()

Ale parser PHP ssie, więc oczekuje konkretnego wyrażenia. Takie kombinacje nie przejdą.

0

możesz też coś takiego zrobić:

class Test{
 
        private $x;
 
        function __construct($x)
        {$this->x=$x;}
 
        function zwroc()
        { return $this->x;}
        static function zwroc2()
        {
          $obj = new Test();
          return $obj->x; // lub return $obj->zwroc();
        }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1