czy można zrobić coś takiego w php? Chcę mieć przestrzeń nazw w zmiennej członkowskiej i po prostu zawsze móc wywoływać każdą statyczną metodę tej klasy, tak jak to robię poniżej.Wywołanie metody statycznej PHP z przestrzenią nazw w zmiennej członkowskiej
Oczywiście mój kod nie działa, ale po prostu zastanawiam się, czy to w ogóle możliwe i że jestem bliski rozwiązania, lub jeśli jest to całkowicie wykluczone i zawsze należy użyć składni:
\Stripe\Stripe::setApiKey(..);
Similar question for clarifications
UWAGA: nie mogę zmodyfikować klasę Stripe, ważne pozostaje nietknięty, gdy przyszłe deweloperów musi zaktualizować API paskiem
kod uproszczonej:
class StripeLib
{
var $stripe;
public function __construct()
{
// Put the namespace in a member variable
$this->stripe = '\\'.Stripe.'\\'.Stripe;
}
}
$s = new StripeLib();
// Call the static setApiKey method of the Stripe class in the Stripe namespace
$s->stripe::setApiKey(STRIPE_PRIVATE_KEY);
Dzięki za szybką odpowiedź Daan. Czy jest jakiś sposób, żeby to działało bez użycia $ stripeLib, używaj tylko $ s? Obawiam się, że to niezmiernie zmyli innych twórców. – NaturalBornCamper
@NaturalBornCamper Tak, oczywiście, zredagowałem swoją odpowiedź. – Daan
Więc w zasadzie jest to podobne do innego pytania, które łączyłem, to absolutnie musi być w regularnej zmiennej? Nie może być w postaci $ this-> member :: setApiKey ("testKey")? – NaturalBornCamper