Bu kötü bir uygulama mı?PHP - bir fonksiyonun içindeki sınıfları tanımlama
gibi:
function boo(){
require_once("class.moo.php");
}
...
?
Bu kötü bir uygulama mı?PHP - bir fonksiyonun içindeki sınıfları tanımlama
gibi:
function boo(){
require_once("class.moo.php");
}
...
?
Evet kötü bir uygulamadır; no değil. çağıran
Eğer __autoload
(veya eşdeğeri) kullanırsanız,:
function someFunc()
{
include('path/to/UndefinedClassName.php');
//may be require_once, include_once, include, or require
//depending on how autoload is written
$n = new UndefinedClassName();
}
:
function someFunc()
{
$n = new UndefinedClassName();
}
eşdeğerdir
Büyük olasılıkla burada her iki cevap almak için gidiyor ve neden bulunuyor
__autoload
'u kullanmamanız durumunda kodunuzdan daha iyi performans elde edersiniz. Ve kodunuzu korumak için, tüm includes
kodunuzu, diğer dillerdeki import
ifadelerine benzer şekilde koymak daha iyidir.
include('path/to/UndefinedClassName.php');
...code...
function someFunc()
{
$n = new UndefinedClassName();
}
Ben tutarlılık öneririz. İşlevlerde include
'u sürekli olarak çağırıyorsanız, çok fazla sorun yaşamamış olmalısınız, ancak dosyaların başlangıcında veya autoloads
olarak ithalatı seçerim.
Bunu önlemek isterim.
Başka geliştirici beklenir, ve bu haliyle, kodunuzun yaşatılabilirlik azaltacaktır değil.
sürece "başka geliştirici ne beklenir değil" Tabii ki diğer geliştirici de aynı şeyi yapıyor ... – zzzzBov
@zzzzBov: Tabii ki "normal" bir geliştiriciyi kastediyorum. Standart olmayan uygulamalar kötü uygulamalardır, IMO. –
Bazı seviyelerde söylediklerinize katılıyorum, ancak hangi standart hakkında konuştuğunuzu ayırt etmek önemlidir. Bir * resmi * standardı yok, sadece diğer programcıların geçmişte kod yazdığı yol var. Bir resmi * standarda en yakın şey, bir sebepten dolayı liberal olan kodlama belirtimi ve sözdizimi. – zzzzBov
Bu, sınıf yükleyicilerinin nasıl çalıştığıdır. Bu mutlaka kötü bir uygulama değildir.
işlevin ne bağlıdır ve neden bunu yapıyorlar. autoloading kullanmak daha uygun olabilir.
ben bu konuda kötü bir şey görmüyorum bunun nedenlerini varsa.
Bu genellikle kötü bir uygulamadır ve kaçınılmalıdır. Bunun yerine bir autoloader kullanmayı düşünmelisiniz.
Başka yerde belirtildiği gibi, temelde otomatik yükleyici nasıl çalışır. – Mchl
Evet, ancak otomatik yükleyici aynı okunabilirlik/sürdürülebilirlik sorunlarına sahip değil. – keithjgrant
Olası kopyası [# 2619573] (http://stackoverflow.com/questions/2619573/how-to-use-include-within-a-fonksiyon) – drudge
Bence bunun bir kopyası var. //stackoverflow.com/questions/1669707/should-require-once-some-file-php-appear-anywhere-but-the-top-of-the-file) aslında – greatwolf