Heim Backend-Entwicklung PHP-Tutorial Machen Sie sich mit „include' und „require' in PHP vertraut!

Machen Sie sich mit „include' und „require' in PHP vertraut!

Feb 17, 2021 am 09:07 AM
php

In PHP gibt es zwei Möglichkeiten, externe Dateien einzubinden, nämlich include und require. Was ist der Unterschied zwischen ihnen?

Wenn die Datei nicht existiert oder ein Fehler auftritt, generiert require einen Fehler der Stufe E_COMPILE_ERROR und das Programm stoppt die Ausführung. Das Include generiert lediglich eine Warnung und das Skript wird weiterhin ausgeführt.

Das ist der Hauptunterschied zwischen ihnen. In anderen Aspekten ist require im Grunde dasselbe wie include.

  • Die eingebundene Datei wird zunächst nach dem durch den Parameter angegebenen Pfad durchsucht. Wenn kein Verzeichnis angegeben ist (nur der Dateiname), wird nach dem durch include_path angegebenen Verzeichnis gesucht. Wenn die Datei nicht unter include_path gefunden wird, sucht include schließlich in dem Verzeichnis, in dem sich die aufrufende Skriptdatei befindet, und im aktuellen Arbeitsverzeichnis.
  • Wenn ein Pfad definiert ist, unabhängig davon, ob es sich um einen absoluten Pfad oder einen relativen Pfad zum aktuellen Verzeichnis handelt , include_path wird vollständig ignoriert
  • include_path Definiert in php.ini
  • Wenn eine Datei eingebunden wird, erbt der darin enthaltene Code den Variablenbereich der Include-Zeile. Von diesem Zeitpunkt an sind alle Variablen, die in der aufrufenden Datei in dieser Zeile verfügbar sind, auch in der aufgerufenen Datei verfügbar. Allerdings haben alle in Include-Dateien definierten Funktionen und Klassen einen globalen Gültigkeitsbereich. Zusätzlich zu den normalen Funktionen „require_once“ und „include_once“ sind ihre Funktionen:

Wenn die Datei bereits eingebunden wurde, wird sie nicht erneut eingebunden . Wie der Name dieser Anweisung schon sagt, kann „Nur einmal einschließen“

    verwendet werden, wenn dieselbe Datei während der Skriptausführung möglicherweise mehr als einmal eingebunden wird und Sie sicherstellen möchten, dass sie nur einmal eingebunden wird, um eine Neudefinition von Funktionen und eine Neuzuweisung von Variablen zu vermeiden Fragen
  • Schauen wir uns einige Beispiele an:
// a.php 不存在
include "a.php"; // warning
// require "a.php"; // error

echo 111; // 使用include时111会输出

// file1.php 中只有一行代码echo 'file1';
require_once 'includeandrequire/file1.php'; // file1
require_once 'includeandrequire/file1.php'; // noting

include_once 'includeandrequire/file1.php'; // noting
include_once 'includeandrequire/file1.php'; // noting

require 'includeandrequire/file1.php'; // file1
require 'includeandrequire/file1.php'; // file1

require 'includeandrequire/file1.php'; // file1
require 'includeandrequire/file1.php'; // file1
Nach dem Login kopieren
Wir können sehen, dass diese Datei nach dem erfolgreichen Laden des ersten _once, egal ob require_once oder include_once, nicht erneut geladen wird. Ohne _once wird die Datei wiederholt geladen.

file2.php

<?php

echo 'file2:' . $a, PHP_EOL;
echo 'file2:' . $b, PHP_EOL;
$b = "file2";

myFile.php

<?php

$a = 'myFile';
$b = 'youFile';
require_once 'includeandrequire/file2.php';
echo $a, PHP_EOL;
echo $b, PHP_EOL;

// 输出结果
// file2:myFile
// file2:youFile
// myFile
// file2

file3.php
<?php

$c = 'file3';

myFile.php
<?php
function test(){
    require_once 'includeandrequire/file3.php';
    echo $c, PHP_EOL; // file3
}
test();
echo $c, PHP_EOL; // empty
Nach dem Login kopieren
Die eingebundene Datei kann die Variablen in der übergeordneten Datei abrufen, und die übergeordnete Datei kann auch die Variablen in der eingebundenen Datei abrufen. Sie müssen jedoch auf einen Sonderfall von _once achten.

function foo(){
    require_once 'includeandrequire/file3.php';
    return $c;
}

for($a=1;$a<=5;$a++){
    echo foo(), PHP_EOL;
}

// file3
// empty
// empty
// empty
// empty
Nach dem Login kopieren
Bei Verwendung von _once und Laden in einer Schleife wird zum ersten Mal nur der Inhalt in file3.php ausgegeben. Da sich der aktuelle Variablenbereich in der Methode befindet, werden nachfolgende Dateien nach Abschluss des ersten Ladevorgangs nicht erneut geladen. Zu diesem Zeitpunkt ist $c in den nächsten vier Schleifen nicht definiert und $c ist standardmäßig leer.

Wenn eine Datei gleichzeitig mit _once in zwei Methoden geladen wird, wird sie dann trotzdem mit der zweiten Methode geladen?

function test1(){
    require_once 'includeandrequire/file1.php';
}
function test2(){
    require_once 'includeandrequire/file1.php';
}
test1(); // file1
test2(); // empty
Nach dem Login kopieren
Leider wird nur die erste Methode erfolgreich geladen und die zweite Methode wird nicht erneut geladen.

Welches eignet sich also besser für die tägliche Entwicklung?

In Bezug auf die Effizienz muss _once überprüft werden, ob die Effizienz geringer ist, aber es handelt sich nicht um einen absoluten Rückgang, der für unser bloßes Auge unsichtbar ist, sodass die Effizienz problematisch sein kann ignoriert. Und es bringt viel mehr Vorteile als ohne _once

    Basierend auf dem Prinzip des Fehlers im Voraus ist es besser, require_once zu verwenden. Denn nachdem die PHP-Fehlerstufe so angepasst wurde, dass keine Warnungen angezeigt werden, sind die Include-Warninformationen nicht sichtbar, was zu unvorhersehbaren Fehlern führt. Bei Verwendung in Methoden sollte _once nicht zum Laden von Dateien verwendet werden, insbesondere wenn diese Datei verwendet werden muss In mehreren Klassen oder Methoden kann die Verwendung von _once dazu führen, dass dieselbe Datei nicht in nachfolgenden Methoden geladen werden kann
  • Bei Verwendung von require oder include ist es am besten, keine Klammern zu verwenden, obwohl diese tatsächlich verwendet werden können, z. B. include (' xxx.php'); Es handelt sich um Ausdrucksschlüsselwörter, nicht um Systemmethoden. Verwenden Sie daher einfach include 'xxx.php'.
  • Wenn die Include- und Require-Dateien eine Rückgabe enthalten, können Sie Variablen verwenden, um die von retun zurückgegebenen Daten zu empfangen Darüber hinaus können Sie auch Nicht-PHP-Dateien und Remote-Dateien laden (für das Remote-Laden muss sichergestellt werden, dass „allow_url_include“ in php.ini aktiviert ist), wie zum Beispiel:
file4.php
<?php

return 'file4';

file4.txt
可以吧

myFile.php
<?php
$v = require 'includeandrequire/file4.php';
echo $v, PHP_EOL; // file4

include 'includeandrequire/file4.txt';
// 可以吧

include 'https://www.baidu.com/index.html';
// 百度首页的html代码
Nach dem Login kopieren
  • Jetzt haben wir ein sehr tiefes Verständnis von include und require Diese beiden Möglichkeiten zum Laden von Dateien Es ist nicht kompliziert, aber es kann leicht zu Fallstricken kommen, insbesondere wenn _once in Methoden verwendet wird, muss besondere Aufmerksamkeit geschenkt werden. Als kleinen Bonus kapseln wir schließlich eine Methode, um alle Dateien im Verzeichnis auf einmal zu laden:
  • function include_all_once ($pattern) {
        foreach (glob($pattern) as $file) { 
            require $file;
        }
    }
    
    include_all_once('includeandrequire/*');
    Nach dem Login kopieren
    测试代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/201911/source/%E5%BD%BB%E5%BA%95%E6%90%9E%E6%98%8E%E7%99%BDPHP%E4%B8%AD%E7%9A%84include%E5%92%8Crequire.php
    Nach dem Login kopieren

    Das obige ist der detaillierte Inhalt vonMachen Sie sich mit „include' und „require' in PHP vertraut!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    Video Face Swap

    Video Face Swap

    Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

    PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

    7 PHP-Funktionen, die ich leider vorher nicht kannte 7 PHP-Funktionen, die ich leider vorher nicht kannte Nov 13, 2024 am 09:42 AM

    Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

    So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

    Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

    Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

    JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

    Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

    Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

    PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

    Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

    Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

    Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

    Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

    Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

    See all articles