2013-04-13 10 views
3

지금까지 내가 string interpolation를 사용하지 않는 많은 사람들이있다 (GitHub의 인기 PHP 코드를 검색) 볼 수 있습니다 : 대PHP에서 문자열 보간을 사용하지 않는 이유가 있습니까?

$loader->load($config['resource'].'.xml'); 

:

$loader->load("{$config['resource']}.xml"); 

어떤 이유가 (즉 공연) 문자열 보간을 사용하지 않기 때문에?

+0

http://stackoverflow.com/questions/13620/speed-difference-in-using-inline-strings-vs-concatenation-in-php5 – monkeyinsight

+0

정말입니까? 필자의 시각은 그 반대이다. 많은 사람들이 보간 작업을 수행하기 위해 너무 많은 문자를 사용하는 문법과 함께 문자열 보간 *을 자주 사용한다. 당신의 질문 자체가 이것의 좋은 예입니다. –

답변

4

아니, 문자열을 사용하지 않을 이유가 없다 이런 식 또는 연결로 작성 맛의 문제가 될 것입니다 경우였다 PHP에서 보간법. 내부적으로how PHP handles string interpolation and concatenation의 작은 차이가 있지만

는, 이러한 차이점은 실제로 거의 측정 할 수있는 너무 작고, 따라서 처리하기 위해 PHP로 남아 있어야합니다.

벤치 마크가 표시되면 PHP에서 문자열을 사용하여 작업하는 것이 일반적으로 반복 횟수입니다. 측정 가능한 결과를 얻으려면 n을 실제 세계에서는 결코 발생하지 않는 매우 과장된 값으로 설정해야합니다.

PHP에서 문자열을 사용하는 방식을 최적화하는 것이 타당하지 않습니다. 대신 실제로 웹 사이트의 성능에 큰 영향을 미치는 문제에 집중해야합니다. 캐싱, 데이터베이스 및 특히, front end.

+1

나는 이것을 두 번 upvote 할 수 있으면 좋겠다. 그것보다 훨씬 더 많이 말해야합니다. – cHao

+1

전혀 차이가 보이지 않는 * 진짜 * 테스트는 실제로 * 사실이 아닙니다. 그러나, 나는 전반적으로 문제에 관해 당신쪽에 전적으로 있습니다. 아직 완전히 무시할 수있는 다른 측정 가능한 케이스가 있습니다 –

2

문자열 보간을 사용하지 않는 이유는 무엇입니까?

성능, 확실히.

유일한 이유는 가독성과 유용성입니다. 나는. 주어진 예제에서 두 번째 줄에는 중괄호 형태의 장애물이 있습니다.이 중괄호는 쓸데없고 코드를 읽기가 어렵게 만듭니다. 왜 그걸 사용합니까?

그러나

"$somevar.xml" 

$somevar.".xml" 
-1

아니요, 일부 사람들은 나쁜 코드라고 생각합니다. 그러나 나는 그 주장에 동의하지 않는다. 코드가 훨씬 명확 해 보이고 PHP에서 내가 많이 좋아하는 것이 하나 있다고 생각합니다.

현재 벤치 마크 테스트를 찾을 수 없지만 결과를 기억할 수 있습니다. 결과는 거의 동일합니다 (100 회의 상호 작용에 의해 +/- 0.0001 초).

+0

내 awnser를 왜 투표하지 않았습니까? – Matt3o12

+0

누군가는 아마도 두 번째 의견이 "더 명확하다"는 의견에 동의하지 않을 수 있습니다. 나는이 경우에 (중괄호는 고통이다), 그렇지만, 그렇다. – cHao

0

대부분의 경우 이는 맛의 문제입니다. 그리고 여기에 전반적인 선호도를 실제로 보았는지 확신 할 수 없지만 나는 이미 그 점을 주석에 적었습니다.

은 성능에 관한 한 멀리 같이

보간은 보간 더 효율적이된다. 성능이 될 수 없습니다 우려 [ref]

그러나 경우 쉽게했다. 이를 위해서는 구체적인 코드와 그 코드의 구체적인 성능 측정이 필요합니다. 대부분의 경우에 차이점을 알 수 없기 때문입니다.

+0

다른 대답에는 성능상의 차이가 없다는 *** 의견이 있습니까? :) – cHao

+0

@cHao : 네, 이제는 저 자신이 대답을 저에게 썼습니다. 제대로 공식화하는 것이 얼마나 힘든지를 보았습니다. 제가 말한 것은 두 가지가 더 빠르다고 말할 수 없다는 것입니다. 나는 또한 당신이 또한 논평 할 때 경미하게 오해하기 쉽기 때문에 그 코멘트를 제거했다. –

관련 문제