Bir işlevi bir sınıf yükleniyor?

3 Cevap php

Ben `Şu anda bir senaryo üzerinde çalışıyorum, ve ben şu durum var.

function somnicefunction()
{
    require 'someexternalclass.php';
    $somevar = new SomeExternalClass();
}

For some reason, the above breaks the function. I'm not sure why, I haven't seen much documentation in php.net regarding this, plus google returned no real results. Does anyone have any idea ?

3 Cevap

İlk nesneyi bildirmek deneyin ve daha sonra bir işleve parametre olarak iletin:

require 'someexternalclass.php';
$somevar = new SomeExternalClass();
function somnicefunction(SomeExternalClass $somevar)
{
    // Do function stuff
}

Eğer birden fazla fonksiyonunu çağırırsanız, aynı dosyayı dahil etmeye çalışarak bir hatayla karşılaşabilirsiniz.

Bunun yerine, require_once() kullanmayı deneyin. Bunun dışında, sizin örnekte hakkında doğal olarak 'illegal' hiçbir şey yoktur.

Sizin kod kesinlikle geçerlidir. Ben localhost üzerinde test edilmiş ve gayet güzel çalışıyor. Ben parça kod aşağıdaki kullandı:

function.php

function loadClass()
{
    include_once "include.php";
    new SomeExternalClass();
}

loadClass();

include.php

class SomeExternalClass {
    public function __construct( ) {
        echo "loads...";
    }
}

Eğer orada herhangi bir yazım hatası yok emin misin? Eğer herhangi bir hata almıyorsanız, o her yerde işlevini kullanmadıysanız gösterebilir.