Getter jako element tablicy PHP

0

Hej, przedstawiam fragment kodu, nieco spreparowanego przeze mnie na potrzeby tego pytania.

public function getSomething() {
	return $this->something;
}
protected $foo = array('red', 'green', 'blue', 'pink', $this->getSomething());

Powyższy kod zwróci mi błąd:

Fatal error: Constant expression contains invalid operations in /opt/lampp/htdocs/test/test.php on line 57

Metoda getSomething() zwraca mi pewną wartość, którą chciałbym wstawić do tablicy. Nie mogętego zrobić jak powyżej, bo użyłem $this poza metodą, natomiast czy istnieje jakiś sposób na wywołanie gettera jako element tablicy?

0

Najpierw tworzysz obiekt który zawiera metodę getSomething(), następnie w korzystasz z tej metody.

<?php

class A
{
    protected $something = '55';

    public function getSomething()
    {
        return $this->something;
    }

}

$x = new A();
$y = ['a', 'b', $x->getSomething()];
var_dump($y);

http://sandbox.onlinephpfunctions.com/

Jeśli chcesz korzystać z metody getSomething() bez tworzenia obiektu, zrób ją jako statyczną - ale wtedy atrybut $something także powinien być statyczny.

0

Zainicjalizuj '$foo' w konstruktorze, wtedy będziesz miał dostęp do '$this'. Inaczej tego nie zrobisz.

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