PHP içerir üzerinde ayrıştırma

3 Cevap php

Ben yolu sabitleri tanımlayan bir dosya init.php dahil. Yani bir dosyada init.php eklerseniz (index.php) ve daha sonra başka bir dosyada (layout/header.php) ... init.php önce çözümlü olduğunu Bu dosyalara eklenen veya ana dosyasına eklenir ve daha sonra ana dosya bir bütün olarak çözümlenir?

EDIT: Bu önemli init.php incelenir nereye konumuna göreli yol değişkenlerini tanımlar çünkü neden.

3 Cevap

Aslında include ve require include bir uyarı verecektir olurken require E_ERROR ile başarısız olacaktır hariç tüm aynıdır . Aslında komut dosyası içinde çalıştırıldığında Ayrıca ifadelerin her ikisi de sadece aktive edilir. Yani aşağıdaki kod her zaman çalışacaktır:

<?php
echo "Hello world";
if (0) require "non_existing.php";

Sorunuzun cevabı index.php ilk ayrıştırılır ve idam edilecek olmasıdır. Sonra include "init.php" dosyasını init.php ayrıştırılır ve güncel kapsamında yürütülür karşılaştı. Için layout/header.php Aynı - ilk işlenecek.

Zaten init.php ayrıştırılır ve çalıştırılan her zaman include / require denir, bu nedenle muhtemelen kullanmak isteyeceksiniz olacak kaydetti include_once veya require_once.

Dahil oldu konumda dosyaya kopyalanıp yapıştırılmış olarak düşünün. Eğer malzeme yeniden istemiyorsanız require_once veya include_once kullanın.


Bir .php veya .txt dahil olmak arasında hiçbir fark yoktur. Bir .txt dosyasına php içerebilir ve bu sürece <?php acmadan etiketine sahip olarak ayrıştırıldı alacak.

Eğer include veya require kullanmak eğer bağlıdır. include dahil dosyasının metin içeriği ebeveyne ilave edilir ve daha sonra her şey ayrıştırılır ile. require dahil dosya ilk ayrıştırılır ve içeriği daha sonra işleme, zamanında sunulması ile içeren dosyanın geri kalanını ayrıştırma ile devam ediyor.

Eğer require_once sadece bir kere ne olursa olsun onu aramak kaç kez ayrıştırılır olduğundan emin olmak için kullanın, başlangıç ​​dosyası sadece bir istek bir çalışma kez yüklü olduğundan emin olmak istiyorum. Her yerde onun sabitleri ihtiyacınız init dosyasını yüklemek, ama require_once sonra gerekli bunu daha fazla kez ayrıştırmak yok emin olmak için kullanmak denemek için onun iyi bir fikir.