2011-02-10 3 views
19

두 가지 예가 모두 웹에 있습니다. php 매뉴얼은 "include() 문 [...]"을 말하고 있는데, 이것은 모순 된 것처럼 보입니다 - 문장 일 경우 괄호가 없어야합니까? php의 함수 또는 명령문을 '포함'합니까?

이 작품의 두

:

include('somefile.php'); 
include 'somefile.php; 

을 그래서 또는 다른 사람 관심을 가져야?

+3

아니 에코 사용합니다. –

답변

28

) (포함이 특별한 언어가를 구성하기 때문에, 괄호는 인수를 중심으로 이 아니고이 필요 없습니다.

이들은 "특수 양식"이라고도하며 echoreturn 문과 같은 것을 포함합니다. 이들 중 어느 것도 함수는 아니지만 식과 문장을 말할 수 있습니다. 차이점은 표현식과 문장이 가치가 있고 후자는 가치가 없다는 것입니다. include 이후로 include_once, requirerequire_once은 모두 포함 된 값 (TRUE)을 반환하며 표현식에 사용할 수 있습니다. 이러한 이유에 의해, "include statement"는 정확하지 않지만, include은 거의 항상 명령문으로 사용됩니다. 예를

// 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'; 
} 
+1

+1에 대해 "언어 구문" – igorw

1

괄호 내의 단일 값은 값 자체로 평가되므로 괄호 자체는 아무런 영향을 미치지 않습니다. 하나의 매개 변수를 가진

-1

문이, 또한이 괄호 수 있습니다 예 : 수동 (내 강조)에서 인용

echo ('hello world'); 
9

는 문이 포함되어 있습니다. PHP 문서의 많은 부분에서 모든 것을 진술이라고 부릅니다. 예제 (제어 구조에서) - "명령문은 할당, 함수 호출, 루프, 조건문 또는 아무 것도 수행하지 않는 명령문 (빈 문) 일 수 있습니다."

문과 함수의 차이점은 개별 언어의 의미에 관한 것입니다. 따라서 PHP 유지 보수 담당자는이를 명시 적으로 정의하거나 모호하게 유지합니다.

+0

부정적인 예를 들어 +1 – PeerBr

+0

이것은 정말로 부정적인 예가 아닙니다. '포함'주위에 괄호를 넣는 것이 인수 주위에 괄호를 넣는 것을 배제하지 않기 때문입니다. 'if ((include ('vars.php')) == 'OK') {echo 'OK'; }'. – dotancohen

1

include, require, echo, print 및 기타 키워드의 소수 오히려 함수 호출보다는 자신의 언어 구조,이고, 괄호가 필요하지 않습니다. 그러나 어떤 사람들은 함수 호출이고 괄호를 사용한다고 가장하는 것을 좋아합니다. 그들은 동일합니다.

-1

나는 유일한 차이점이 무엇을하고 싶은지 믿습니다. 예를 들어

,이 두

echo 'Hello World'; 
echo ('Hello World'); 

... 모두 인쇄 안녕하세요.

그것은 단지 당신이 가장 편안 느낌, 그리고 당신이 나 같은 경우, 당신은 당신의 스크립트를 만들고 싶어 예쁜 모습인지, 무엇을 원하는 : D

5

괄호는 함수에 대한 매개 변수입니다. include을 사용하면 함수 또는 PHP의 명령문으로 사용할 수 있습니다.

include()는 특수한 언어 구문이므로 괄호는 인수 주위에 이 필요하지 않습니다. 여기

문서 : 당신 이되지 않도록 here

에코 실제로 함수가 아닙니다 PHP 매뉴얼에서 인용 echo 동일한 개념으로 http://php.net/manual/en/function.include.php

은 (는 언어 구조입니다) 에 괄호를 사용하려면이 필요합니다. echo (다른 언어 구문과 달리)는 함수처럼 동작하지 않으므로 은 항상 함수의 컨텍스트에서 사용할 수 없습니다. 에코에 대한

0

는 항상 특정 이유없이 하나의 상관해서는 안, 는 "테스트"

<?php 
// this will give you error 
echo ("test","test"); 

//that will work fine 
echo "test","test"; 
?> 
관련 문제