PHP 파일에는 함수가 포함되어 있습니다.
실제 개발에서는 프로그램에 있는 공통 코드를 파일로 넣어야 하는 경우가 종종 있는데, 이러한 코드를 사용하는 파일은 이 파일만 포함하면 됩니다. 이 방법은 코드의 재사용성을 향상시키고 코드 작성 및 유지 관리에 큰 편의성을 제공합니다. PHP에는 파일을 포함하는 require, require_once, include 및 include-once의 네 가지 방법이 있습니다.
차이점을 비교해 보겠습니다.
函数 | 包含失败 | 特点 |
---|---|---|
Inlcude | 返回一条警告 | 文件继续向下执行。通常用于动态包含 |
Require | 一个致命的错 | 代码就不会继续向下执行。通常包含极为重要的文件,整个代码甭想执行 |
Include_once | 返回一条警告 | 除了原有include的功能以外,它还会做once检测,如果文件曾经已经被被包含过,不再包含 |
Require_once | 一个致命的错 | 除了原的功能一外,会做一次once检测,防止文件反复被包含 |
참고:
1. 감지 작업을 수행하는 데 더 많은 리소스가 소비되므로 _once를 한 번 적게 사용하세요.
2, Extra Advanced
Include 파일은 한 번만 컴파일하면 됩니다. include가 포함될 때마다 해당 코드가 다시 실행되기 때문입니다. .
몇 가지 실험을 해보겠습니다.
1. include에는 함수의 기능이 포함되어 있습니다.
functions.php 파일을 만들고 그 안에 두 개의 함수를 작성합니다.
<?php //functions.php文件 function demo(){ echo 'aaaa'; } function test(){ echo 'cccdddd'; } ?>
functions.php와 동일한 디렉터리에 user.php 파일을 만들고 포함된 function.php 파일을 추가합니다. . 이런 식으로 내 함수를 function.php에 구체적으로 배치할 수 있습니다. 이러한 함수가 필요할 때 거기에서 해당 함수를 포함시킵니다.
<?php //user.php include 'functions.php'; //可以直接调用 demo(); test(); ?>
위의 예를 통해 include의 기능을 알고 있습니다. 다음으로, include와 require를 비교합니다:
코드에서 먼저 include를 사용하여 존재하지 않는 test.php 파일
<?php //user.php include 'functions.php'; include 'test.php'; //可以直接调用 demo(); test(); ?>
를 포함하고 나서 require를 사용하여 존재하지 않는 test.php 파일을 포함합니다. test.php 파일:
<?php //user.php include 'functions.php'; require 'test.php'; //可以直接调用 demo(); test(); ?>
위 예제를 비교하여 다음을 발견했습니다.
test.php 파일이 없으면 include는 경고를 표시하고 데모를 계속 실행합니다( ) 및 test() 함수.
그리고 require는 오류를 직접 보고하며, 데모() 및 test() 함수를 계속 실행할 수 없습니다.
표를 통해 알 수 있습니다. include와 include_once의 차이점은 반복적으로 포함되는지 여부를 감지하는 것입니다. include_once가 반복적으로 포함되면 해당 파일은 더 이상 포함되지 않으며, include는 이에 대해 신경 쓰지 않습니다. 파일을 가져왔는지 여부에 관계없이 다시 가져오세요.
방금 했던 것과 동일한 user.php를 다시 시도해 보겠습니다. 각각 include와 include_once를 사용하여 function.php를 두 번 포함합니다.
<?php //user.php //这儿被包含了两次同样的函数定义文件哟 include 'functions.php'; include 'functions.php'; //可以直接调用 demo(); test(); ?>
include_once로 변경하고 다시 시도하세요.
<?php
<?php //user.php //这儿被包含了两次同样的函数定义文件哟 include_once 'functions.php'; include_once 'functions.php'; //可以直接调用 demo(); test(); ?>
별도로 실행한 후 - include include가 이번에 두 번 function.php를 도입할 때 다음 오류를 보고한 것을 확인할 수 있습니다:
위 그림의 프롬프트에는 데모() 함수를 재정의할 수 없다는 내용이 나와 있습니다.
함수 정의 장에서 언급했듯이 함수는 두 번 정의할 수 없으며, 그렇지 않으면 오류가 보고됩니다. function.php를 두 번 포함시켰기 때문에 두 번 실행되어 이런 오류가 보고되었습니다.
include_once가 오류를 보고하지 않는 이유는 function.php가 이전에 포함되었다가 더 이상 포함되지 않는다는 것을 감지하기 때문입니다.
require와 require_once의 기능을 여러분의 가장 똑똑한 두뇌로 추론할 수 있나요? require_once에는 두 가지 특성이 있습니다.
1. 포함된 파일이 존재해야 합니다. 그렇지 않으면 실행이 중지됩니다.
2. 반복적인 포함 확인이 수행됩니다.