>백엔드 개발 >PHP 튜토리얼 >인쇄는 기능이 아닙니다

인쇄는 기능이 아닙니다

藏色散人
藏色散人앞으로
2019-06-03 17:07:152474검색

인쇄는 기능이 아닙니다

이상해 보이는 질문에서 나온 것입니다:

if (print("1\n") && print("2\n") && print("3\n") && print("4\n")) {
    ;
}

이 코드가 무엇을 출력할 것으로 예상하시나요?

실제 출력은 다음과 같습니다.

4
111

인쇄물이 문법 구조(언어 구조)라는 사실을 우리는 자주 무시합니다. , 함수가 아니며 매개변수 목록에는 괄호가 필요하지 않습니다(괄호를 써도 구문 분석 단계에서 괄호는 무시됩니다). 항상 결과를 반환하는 표현식일 뿐입니다. 1 공식(expr)" :

expr :
   T_PRINT expr
 | '(' expr ')'
;
所以其实上面的代码在php看来是:
if (print ("1\n" && print ("2\n" && print ("3\n" && print "4\n")))) {
  ;
}

그래서 4를 출력하고 "3n"을 출력하고 && 인쇄 결과는 1이 되고 "2n" && 1을 출력하고 마지막으로 "1n" && 1

그리고 위의 목적을 달성하려면 의도된 것입니다 코드 자체의 의도에 따라 다음과 같이 작성해야 합니다.

if ((print "1\n") && (print "2\n") && (print "3\n") && (print "4\n")) {
    ;
}

위 내용은 인쇄는 기능이 아닙니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 laruence.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제