2012-04-05 2 views
1

include/requre_once에 대한 간단한 질문입니다. 필자는 코드 반복보다는 각 페이지에서 호출하는 것이 더 좋을 것이라고 생각되는 몇 페이지에 공통적 인 몇 가지 코드를 가지고 있습니다.PHP include_once 또는 require_once를 루프에 넣습니다.

while 루프에서 include_once를 호출하고 include ('file.php')를 사용해야한다는 사실을 알게되었거나 문자 그대로로드하고 표시합니다. 내가 가정 한 것 (잘못)은 루프의 각 반복마다 디스크에 액세스하지 않아도되도록 첫 번째 루프에로드하고 캐시에 코드를 유지한다는 것입니다.

"load_once_and_cache"유형의 명령을 둘러 보았지만 아무 것도 찾지 못했습니다.

아무에게도 제안 사항이 없거나 각 페이지의 코드를 유일한 방법으로 사용하고 있습니까?

다시 한번 감사드립니다!

+0

정말 우리가 포함 된 파일을 캐싱하거나 성능이 크게 떨어지는 볼륨과 사용법을 가진 웹 사이트를 말하고 있습니까? 편집 : BTW, 이것은 포함 파일이 콘텐츠와 관련이 있으며 라이브러리/기능과 관련이 없다고 가정합니다. PHP 메소드/클래스/코드 일 경우 두 번 이상 포함 할 필요가 없습니다. –

답변

5

이것은 루프에 내용을 가져 오는 꽤 비효율적 인 방법입니다. PHP는 각 include() 호출시 디스크에서 파일을 읽어야합니다. 함수를 만드는 것이 훨씬 낫습니다 (포함 된 파일에있을 수 있습니다). 함수를 정의한 파일을 한 번 포함시킨 다음 루프에서 함수를 호출하십시오.

아마도 포함 된 파일의 출력에 의존하는 것은 좋지 않습니다.보기를 코딩 할 때를 제외하고는 (심지어 두 번 생각하기 전에 생각할 수도 있습니다). 루프 안에 파일을 포함시켜야 디버깅 및 유지 보수가 어려울 수있는 이상한 혼합 흐름 제어와 파일 포함이 발생합니다.

+0

PHP 7에서는 for 루프에서 돌아옵니다. – peter

1

주위의 공기가 복잡한 구조와 방대한 양의 코드와 같은 냄새가 나기 때문에 나는 물건을 완성하기 위해 OOP 기술을 사용한다고 가정 할 것입니다.

http://php.net/manual/en/language.oop5.autoload.php

또한 완전히 무슨 일이 일어나고 있는지 이해하기 위해 주석을 읽을 필요하고이 경우

, 어쩌면 당신은보다 효율적이고 빠른 방법으로 자동 로딩 클래스를 고려할 것 다양한 상황을 관리하기위한 몇 가지 방법을 찾아보십시오.

관련 문제