2009-10-20 2 views
2

나는 다음과 같은 코드가 : PHP는 (아마도 dirname(__FILE__).'/file.php' || dirname(__FILE__).'/local/file.php')PHP의 포함은 포함

이 두 번째 줄을 주석하는 것은이 작품으로 만드는 "1" 포함하기 때문에이 오류가 발생

if (include_once(dirname(__FILE__).'/file.php') 
    || include_once(dirname(__FILE__).'/local/file.php') 
    ) 
{ 

을 두 번째 파일을 사용하지 않을 것임을 제외하고는 elseif을 사용하고 여기에 중복 코드가 필요합니까, 아니면이 방법을 사용할 수있는 방법이 있습니까?
저작권 (C) 1997 (2009년 8월 21일 19시 14분 44초 내장) 수호신 - 패치 0.9.6.2 (CLI)와

$ PHP를 --version
PHP의 5.2.6-3ubuntu4.2 -2008 PHP의 그룹
젠드 엔진 V2.2.0, 저작권 (C) 1,998에서 2,008 사이 젠드 기술

답변

4

그룹화 include 문 :

if ((include_once dirname(__FILE__).'/file.php') 
     || 
    (include_once dirname(__FILE__).'/local/file.php') 
    ) 

이 매뉴얼 페이지에 example #4를 참조하십시오 :

<?php 
// won't work, evaluated as include(('vars.php') == 'OK'), i.e. include('') 
if (include('vars.php') == 'OK') { 
    echo 'OK'; 
} 

// works 
if ((include 'vars.php') == 'OK') { 
    echo 'OK'; 
} 
?> 
+0

이 ... 직관은 적어도 말을하는 것입니다. PHP의 '언어 구조'에 대한 1000 가지 저주. –

+0

사실 그것은 PHP의 주요 특징 중 하나입니다. :) 어쨌든, 나는 문장의 반환 값을 일부 임시 변수에 할당하고,'if' 테스트 내부의 값을 사용한다. –

+0

좋아, 내가 물어야한다 : PHP의 주요 특징 중 하나는 무엇입니까? 반 직관적이거나 실제 함수 대신 언어 구문을 사용하고 있습니까? –

0

연산자 우선 순위를 정복하기 위해 괄호를 사용해보십시오.

if ((include_once('xml.php')) || (include_once('xml.php'))) { 
    echo 'bah'; 
}