>  기사  >  백엔드 개발  >  PHP에서 에코에 쉼표와 점을 사용하는 것의 차이점에 대한 자세한 설명

PHP에서 에코에 쉼표와 점을 사용하는 것의 차이점에 대한 자세한 설명

*文
*文원래의
2017-12-29 19:04:181850검색

이 기사에서는 PHP 프로그래밍에서 에코를 연결하기 위해 쉼표와 점을 사용하는 것의 차이점을 이해하기 위해 몇 가지 구체적인 예를 사용합니다. 도움이 필요한 친구들이 참고하면 좋을 것 같아요.

.connection을 사용하는 것보다 echo string을 사용하는 것이 더 낫다고 합니다. 이유는 논하지 말고 다음 두 문장을 살펴보겠습니다

 <?php
 // 逗号比.更节省时间?
 echo &#39;1+5=&#39; . 1+5; 
 echo &#39;1+5=&#39; . 5+1;

결과는 무엇인가요?

1+5=6?
1+5=6?
——————
6?
2?
——————
6.6?
6.6?
——————

echo '5+1=' .1+5; 의 결과는 6과 2라고 밖에 말할 수 없습니다.

이게 PHP에는 왜 없나요? 당연하지..
왜 위의 점을 쉼표로 바꾸려고 하면 생각하지 맙시다.

echo &#39;1+5=&#39; , 5+1;  //输出 1+5=6 
echo &#39;1+5=&#39; , 1+5;  //输出 1+5=6

쉼표를 사용해야만 예상한 결과를 얻을 수 있음을 알 수 있습니다.

그러면 왜 점은 왜 안되나요? 작동하지 않나요? 쉼표는 왜 작동하나요?

echo (&#39;1+5&#39; . 5)+1; //输出2

앞에 괄호를 추가하면 결과가 동일합니다.

PHP가 문자열을 먼저 연결한 다음 왼쪽에서 방향을 따라 계산한다는 것을 증명합니다. 그렇군요. 문자열이 먼저 연결되어 있으므로 "1+55"여야 합니다. 그런 다음 이 문자열을 사용하여 1을 추가합니다. 그렇다면 왜 2가 출력됩니까?


이것은 문자열 변환 메커니즘과 동일합니다. 다음 예를 살펴보겠습니다.

echo (int)&#39;abc1&#39;;  //输出0
echo (int)&#39;1abc&#39;; //输出1
echo (int)&#39;2abc&#39;; //输出2
echo (int)&#39;22abc&#39;; //输出22

위의 예에서 문자열을 숫자로 강제 변환하면 PHP는 문자열이 시작되는 경우를 검색합니다.

그렇지 않으면 그냥 0을 반환합니다.


지금은 1+55로 돌아갑니다. 이 문자열은 1+55이므로 강제 유형 변환 후에는 1이 되어야 합니다. 1. 당연히 2입니다.

우리의 추측을 증명하기 위해 검증해 보겠습니다.

echo &#39;5+1=&#39; . 1+5; //输出10
echo &#39;5+1=&#39; . 5+1; //输出6
echo &#39;1+5=&#39; . 1+5; //输出6
echo &#39;1+5=&#39; . 5+1; //输出2

결과는 우리의 가정이 정확하다는 것을 증명합니다.

그러면 왜 쉼표를 사용하면 위의 문제가 해결되나요?



설명서에 나와 있습니다. 쉼표를 사용하면 매개변수가 여러 개라는 의미입니다.


즉, 매개변수가 여러 개라는 뜻입니다.


쉼표로 구분하면 N개의 매개변수와 동일합니다. 즉, echo는 함수로 취급됩니다.


이 경우 echo는 각 매개 변수를 먼저 계산한 후 최종적으로 연결하여 출력하므로 쉼표를 사용하면 위의 문제는 존재하지 않습니다.)

php echo manual

<?php
// Strings can either be passed inpidually as multiple arguments or
// concatenated together and passed as a single argument
echo &#39;This &#39;, &#39;string &#39;, &#39;was &#39;, &#39;made &#39;, &#39;with multiple parameters.&#39;, chr(10);
echo &#39;This &#39; . &#39;string &#39; . &#39;was &#39; . &#39;made &#39; . &#39;with concatenation.&#39; . "\n";

빠른 이유는 다음과 같습니다. .을 사용하면 먼저 echo에 연결된다는 것을 쉽게 이해할 수 있지만, 쉼표의 수는 에코 호출 횟수를 나타냅니다(당분간은 이렇게 이해할 수 있습니다).

하지만 접합 속도는 에코 속도보다 느립니다.

깊이 이해해보면 VLD는 아래와 같습니다. @tywei


님 사진이에요. 위쪽이 아래쪽보다 CONCAT이 많고 아래쪽이 위쪽보다 울림이 더 많아요.

관련 추천:

PHP 구문(Syntax)

PHP 학습 MVC 프레임워크 by

php 네임스페이스 사용법에 대한 자세한 설명

위 내용은 PHP에서 에코에 쉼표와 점을 사용하는 것의 차이점에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.