우선 : 나는 그것을 시도했지만, 상수 및 기타 관련이없는 정보로 배열을 정의하는 방법에 대한 토론을 주로 발견했습니다.상수만을 포함하는 PHP 클래스
저는 제 코드를 더 읽기 쉽고 (그리고 꽤) 나에게만 들리게하는 해결책에 관해 질문이 있습니다. 기본적으로 대부분의 함수는 성공을 나타내는 상태 코드를 반환하거나, 문제가 발생하면 오류 코드를 반환합니다.
<?php
class StatusCode {
const success = 0;
const badArgument = -1;
const badQuery = -2;
const outOfMana = -3; //Really just for demonstration purposes
...
}
목적은 매직 넘버가 내 코드에서 사라지게하고 찾을 필요없이 잘못된 분명히 무엇을하는 것입니다 :이, 나는 단지 정수가 너무 좋아 "상태 코드"라는 클래스를 만들어 어딘가에 explaination :
if (mana > 10) {
//Do some magic
return StatusCode::success;
}
else {
//Oh god this is not good!
return StatusCode::outOfMana;
}
그것은 또한 실수로 중복 오류 코드를 사용할 수있는 가능성을 제거한다. 이 코드는 내 응용 프로그램에 약간의 오버 헤드를 추가하지만 내 코드를 이해하기 쉽도록 만들었습니다. 이 일을하지 않는 이유가 산산조각 날 것입니까? 그것에 대해 갈 수있는 더 좋은 방법일까요?
는 (덜 예쁜 것 때문에 나는define(CONSTANT, "value")
접근을 방지하고 내 독일어 키보드 :)에 작성하는 번거 로움) 자바와 다른 언어
당신이 한 일을하지 않는 이유는 없습니다. 말했듯이, 그것은 당신의 코드를 더 읽기 쉽게 만듭니다. 오버 헤드 추가에 관해서는 비록 그것이 사실이라면 그것은 최소한의 오버 헤드입니다. 더 나은 방법은 상수를 정의하기 위해 인터페이스를 사용하여 수행 한 작업에 대한 변형이 있습니다. TL, DR - 잘 했어. –
@ N.B와 완전히 일치합니다. 고 밝혔다. 이 게시물의 유일한 문제는 코드 리뷰에서 끝나야한다는 것입니다. 여기를 참조하십시오.) – Prisoner
코딩 스타일의 작은 코너에서 가장 좋은 선택이 있습니다.그리고 스타일에 관해 말할 때, 사람은 "절대 최고"를 말하지 않을 것입니다. ;-) BTW,이 클래스를'abstract' 또는'final' 클래스를 어떻게 사용하지 않을 것인지에 대한 추가적인 힌트로 만들고 싶을 수도 있습니다. 불행히도 그 두 가지가 될 수는 없습니다. – Jon