PHP: Bir geri arama bir yöntem kullanarak,

1 Cevap php

Ben şey için array_walk_recursive kullanmaya çalışıyor, ve bu yüzden çalışırken, geri çağrı olarak sınıf 'yöntemlerden birini kullanmak istedim:

  array_walk_recursive($TAINTED, "$this->encode()");

ve bunların bütün varyasyonları başarısız oldu. Sonunda yerleşmiş:

array_walk_recursive($TAINTED, 'className::encode');

çalışır, ama ben bu gibi statik bir şekilde sınıf yöntemlerini çağırarak sık sık kötü bir uygulama olarak kabul edilir ki burada okudum hangi. Ya da bu zaten gerekli olan durumlardan biridir?

Yani, bu konuda gitmek için doğru yoldur, ya da statik bir sınıf yöntemi olarak kullanarak geri düşmek zorunda kalmadan geri arama işlevi koymak için bir yolu var mı?

1 Cevap

Ben bu konu eski biliyorum ama sözlerini okuyarak "calling class methods in a static fashion like this is often considered poor practice" Ben doğru görev için kullanıldığında statik işlevleri iyi bir uygulama olduğunu söylemek gerekir. Laravel ve Senfoni gibi çerçeveler statik yöntemler gerçek potansiyelini gösterir.

Statik yöntemlerle korkmuyoruz zaman neyse yerine gelişim sürecinde değişebilir sınıf adını belirterek self kullanarak yöntemi çağırabilirsiniz.

array_walk_recursive($TAINTED, 'self::encode');