2012-03-02 5 views
3

require_once 같은 것을 사용하여 이해할 수있는 내용은 본질적으로 첫 번째 파일에있는 것처럼 코드를 복사하여 한 파일에서 다른 파일로 붙여 넣습니다. 내가 이런 일을 할 수 있다면 의미는메서드 내에서 require_once 사용

foo.php

<?php 
require_once("bar.php"); 
?> 

bar.php

<?php 
print "Hello World!" 
?> 

실행 유효 할 것이다 php foo.php 것이다 단지 출력 "Hello World!"

이제 내 질문은, 내가 require_once을 메서드 안에 포함하면, 포함 된 파일이 cript가로드되거나 메소드가 호출 될 때만? 그리고 메서드가 호출 될 때만 있으면 성능상의 이점이 있습니까? 또는 모든 코드를 하나의 큰 파일로 보관 한 것과 같습니다.

대용량의 전화를 처리하는 API 파일을 만들었 기 때문에 주로 묻습니다. 파일을 단순화하지 않겠습니다. (나는이 그냥 별도의 클래스를 생성 할 수 할 수있어,하지만 난이 알고 좋은 것이라고 생각)

답변

1

(이 이미 요구 한 경우 미안 해요, 난 무엇을 검색 할 확실하지 않았다) 1) 메서드가 호출 될 때만.

2) PHP 인터프리터가 사용되지 않는 경우 추가 코드를 구문 분석 할 필요가 없도록 즉석에서로드하는 것은 무한한 이점이 있다고 생각합니다.

+0

재 : 2. 성능 문제 대 메모리가있어 (특히 연산 코드 캐시를 사용) . 주문형 코드를로드하면 메모리가 절약되지만 더 많은 처리가 필요하며 캐시하기가 더 어렵습니다. – Mchl

+0

고마워, 내가 알 필요가있는 thats. 이전에 캐싱이 어떻게 작동하는지 생각하지 않았습니다. 감사. –

2

메서드가 호출 될 때만 포함되지만 autoloading을 보았습니까?

0

나는 일반적으로 include ('bar.php'); 나는 databvase 정보를 사용할 때 그것을 사용하는데, 나는 login.info라는 파일을 가지고 있고, 파일이로드 될 때 그것을 바로 호출한다. 나는이 함수를 호출 할 필요가 없다. 가장 효과적이고 효율적인 것은 아니지만 그것은 저에게 효과적입니다. include_once ... include를 사용할 수도 있습니다. 기본적으로 원하는대로 처리합니다. 코드를 본질적으로 복사합니다.

0

다른 사람들이 언급했듯이, 적시에 포함되어 있습니다.

그러나 변수 정의 (메서드의 범위에서 해당 변수의 로컬 변수에 대한 액세스 만 허용)에주의하십시오.

당신도 함께 버퍼 출력뿐만 아니라, 포함 된 파일에서 값 (즉, 문자열)을 반환 할 수 있습니다 명심 ob_start()

관련 문제