2010-03-17 4 views
2

자주 기본값을 사용해야합니까? PHP에서, 당신이있는 경우 다음과 같은 예를 들어 프로그래밍 언어의 기본 기능에 의존하는 것이 현명한가요?

:

<?php 

$var .= "Value"; 

?> 

이 완벽하게 잘 - 그것은 작동합니다. 그러나 이전에 사용하지 않은 변수에 이와 같은 할당을 나중에 언어에서 제거하면 어떻게 될까요? (나는 이 아니다.은 사용되지 않는 변수에 대한 일반적인 할당을 의미한다.)

무언가의 기본값이 변경되어 많은 기존 코드가 쓸모없는 부분이 무수히 많다.

반면에 기본값이 없으면 많은 코드 중복이 있습니다.

이 문제를 해결하는 적절한 방법은 무엇입니까?

+0

PHP를 잘 모르는 사람들은'. ='무엇을하는지 설명해야합니다. '$ var'를''Value ''로 설정 했습니까? –

+2

C++에서 + = 연산자와 같습니다. 문자열에 추가합니다. 현재 $ var가 비어 있으면 $ var를 'Value'로 설정합니다. –

+0

@ George : 언어에서 삭제 된 기능에 대해 들어 본 적이 있습니까? –

답변

5

필자가 생각하기에, 언어가 수용 수준에 도달하면 크게 바뀔 확률은 매우 낮습니다.

나에게는 각 언어마다 (때로는 다소 차이가있는) 고유 한 기능 집합이 함께 제공됩니다. 그들이 언젠가는 사라질 수도 있기 때문에 그러한 것들을 사용하지 않는 것이 근시안적 인 것처럼 보입니다. 당연히, 그렇게하기 위해서 난해한 기능을 사용하지 마십시오. 귀하가 선택한 언어에 대한 일반적인 가독성 및 모범 사례를 따르도록하십시오. 그렇지 않으면 특정 기능을 차별 할 필요가 없습니다.

+0

해당 기능이 잘 설정된 경우 계속 진행 하시겠습니까? –

+1

그리고 언어의 가장 일반적인 구현 사고가 아닌 실제로 기능으로 문서화 된 경우 : 예, 진행하십시오. –

+0

예. 기능이 무엇인지에 따라 설치 방법이 중요하지 않을 수 있습니다. 브룩스 모세 (Brooks Moses)가 대답하면서 말했듯이 문제의 기능이 일반적으로 사용된다면 분명히있을 것입니다. 이상한 경우 또는 부작용이있는 경우 제거하는 것이 더 쉽습니다. 그러나 결국, 당신은 무언가를 사용해야합니다. 그래서 당신은 언어가 당신에게주는 것을 따라갈 수도 있습니다. :) –

3

프로그래밍 언어의 기본 값 기능은 실제로 구현의 사고가 아닌 표준의 문서화 된 부분 (많은 과거의 "기본 초기화")이 다른 모든 기능과 다르지 않습니다. 프로그래밍 언어. 언어의 다른 것에 의존하는 것이 현명한 경우 지혜에 관계없이 대답은 선택의 여지가 없다는 것입니다. 즉, 무언가에 의지해야하며 향후 버전에서 모든 것이 가상으로 변경 될 수 있습니다.

물론 당신이 의존하고있는 것이 홀수 코너 케이스가 아닌 일반적으로 사용되는 언어 기능이라면 향후 버전에서도 계속 유지 될 가능성이 훨씬 더 높습니다. 또한 그러한 일이 염려되는 경우 하위 호환성을 유지 관리하는 역사가있는 잘 정립 된 언어를 선택하는 것이 좋습니다. 일부 언어는 이전 버전의 코드가 새 버전의 언어에서 실행되는지 확인하기 위해 많은 노력을합니다.

그래서 일반적인 대답입니다. 기본값에 대한 구체적인 대답은 특정 사례, 문제의 언어 등에 따라 달라진다는 것입니다. 프로그램 시작시 C의 전역 정적 변수가 0이된다는 사실에 철저히 의존 할 수 있습니다. 일부 다른 경우는 신뢰성이 떨어집니다.

+1

좋은 지적입니다, 다시 : documentation. –

+0

C를 많이 사용하는 것 같습니다. –

+0

사실, 저도 그렇습니다. 제 대답이 약간 왜곡되어 있고 그것을 바로 잡으려고했습니다. 그러나 지난 50 년 동안 거의 인식 할 수없는 지점으로 바뀌었던 Fortran의 컴파일러 구현에 대해서도 연구했고, 언어가 변경되었을 때 컴파일러에서 지원하거나 지원하지 않는 하위 호환성에 대해 논의했습니다. –

0

언어의 정의 된 기능이 있다면 그 언어에 의존하는 것이 안전 할 것입니다.

기능에 의존 할 필요가있는 곳은 지정되지 않은 행동을 다루는 영역에 들어갔을 때 또는 무엇이 아닌 다른 것을 위해 기능을 "잘못 사용"하는 경우입니다. 그것은 의도되었다.

"문자열의 기본값"은 주요 시나리오이기 때문에 아마 안전 할 것입니다. 더 위험한 것은 이전에 변수를 선언 한 경우 예상치 못한 변수가 예상치 못한 부작용으로 변경 될 수 있다는 것입니다.

기본적으로 언어 기능을 악용하지 않거나 정의되지 않은 동작에 의존하지 않으면 의도하지 않은 부작용이 언어 변경에 대해 걱정해야합니다 (특히 언어가 성숙한 경우).

관련 문제