Nasıl bir dosyada PHP süreç fonksiyonları yapar?

4 Cevap

Ben Say file.php üç fonksiyon ve echo deyimi ile:

function one() {
    return three() . ' This is one.';
}

function two() {
    return 'This is two.';
}

function three() {
    return 'This is three.';
}

echo one(); // string(xx) "This is three. This is one."

İlk olarak, function three() dosyasında sonra görünür halde function one() çağrı function three() olması genel olarak kabul edilebilir?

İkincisi, ne zaman file.php (böylece sunucu üzerinde PHP yürütme) tarayıcıda yüklü, PHP asla denir olsa bile, function two() dönüş değerini hesaplar?

Böyle nasıl PHP süreç sıradan şeyler üzerinde fazla okuma için herhangi bir bağlantıları harika olurdu.

4 Cevap

First, is it generally acceptable to have function one() call function three() even though function three() appears later in the file?

Kesinlikle. Kaynak sırası işlevleri çağırmak hangi sırayla hiç bir ilgisi yok - ilk satırı çalıştırılmadan önce tüm çözümlü ve mevcut bulunuyor.

Second, when file.php is loaded in the browser, does PHP calculate the return value of function two(), even though it is never called?

Hayır ayrıştırma sırasında yazım hatalarını kontrol edilecek, ama bu - bu E_PARSE düzeyi hataları olacaktır. Diğer hatalar zamanında sadece algılanabilir ve E_ERROR, e_warning veya E_NOTICE düzeyi hataları olacaktır.

http://us2.php.net/manual/en/errorfunc.constants.php

İkinci sorunuza cevap HAYIR bunu özellikle denir sürece, bu işlevi çalışmaz. Ve bu işlevleri çok sahip kod çalışacaktır yazılır sipariş hangisi olduğu önemli değil.

PHP tarayıcıda çalışan değil, bu sunucu tarafından çalıştırılır.

Onlar zamanında kullanıldığında PHP söz kod ilk kez çözümlenen zaman göre değil, sınıf ve işlev adları arar.

Yani, three() one() içeride çalışan olarak uzun işlev bildirimi olarak three() one() ilk kez çalıştırmadan önce ayrıştırılır, Tamam zamanı.

bir () çağrılır zaman, üç () zaten sorun yok yani, tanımlanmıştır.

İki () çağırana kadar iki () değerlendirilir olmaz.

http://www.php.net/manual/en/functions.user-defined.php