이 글에서는 PHP의 include와 require에 대해 자세히 소개하여 모든 사람이 include와 require를 완전히 이해할 수 있도록 하겠습니다.
PHP에는 외부 파일을 포함하는 두 가지 방법, 즉 include와 require가 있습니다. 그들 사이의 차이점은 무엇입니까?
파일이 없거나 오류가 발생하면 require는 E_COMPILE_ERROR 수준 오류를 생성하고 프로그램 실행을 중지합니다. 포함하면 경고만 생성되며 스크립트는 계속 실행됩니다.
이것이 둘 사이의 주요 차이점입니다. 다른 측면에서는 require는 기본적으로 include와 동일합니다.
// 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
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
function foo(){ require_once 'includeandrequire/file3.php'; return $c; } for($a=1;$a<=5;$a++){ echo foo(), PHP_EOL; } // file3 // empty // empty // empty // empty_once를 사용하고 루프에서 로드하면 처음으로 file3.php의 내용만 출력됩니다. 이유는 무엇입니까? 현재 변수 범위가 메서드에 있기 때문에 첫 번째 로드가 완료된 후에는 후속 파일이 다시 로드되지 않습니다. 이때 다음 4개 루프에는
c 기본값이 비어 있습니다.
두 가지 방법으로 동시에 _once를 사용하여 파일을 로드하는 경우 두 번째 방법으로도 파일을 로드할 수 있나요?
function test1(){ require_once 'includeandrequire/file1.php'; } function test2(){ require_once 'includeandrequire/file1.php'; } test1(); // file1 test2(); // empty
죄송합니다. 첫 번째 방법만 성공적으로 로드되며 두 번째 방법은 다시 로드되지 않습니다.
그렇다면 일상적인 개발에 어떤 것이 더 좋을까요?
효율성 측면에서 _once는 파일이 로드되었는지 확인해야 합니다. 효율성은 떨어지겠지만, 눈에 보이지 않는 정도의 감소이므로 효율성 문제가 발생할 수 있습니다. 무시되었습니다. 그리고 _once가 없는 것보다 훨씬 더 많은 이점을 제공합니다
미리 오류의 원칙을 바탕으로 require_once를 사용하는 것이 좋습니다. 경고를 표시하지 않도록 PHP 오류 수준을 조정한 후에는 포함에 대한 경고 정보가 표시되지 않아 예측할 수 없는 오류가 발생하기 때문입니다
메서드에서 사용할 때 _once를 사용하여 파일을 로드해서는 안 됩니다. 여러 클래스나 메소드에서 사용할 때 _once를 사용하면 후속 메소드에서 동일한 파일을 로드하지 못할 수 있습니다
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代码
function include_all_once ($pattern) { foreach (glob($pattern) as $file) { require $file; } } include_all_once('includeandrequire/*');
测试代码: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
위 내용은 아직도 PHP의 include와 require에 대해 모르시나요? 이 글을 살펴보세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!