2012-12-19 2 views
6

PHP의 내부 함수가 미리 정의되거나 제한된 값에 대해 문자열을 사용하지 않고 상수 만 사용한다는 사실을 눈치 챘습니다. 왜 PHP의 내장 함수는 문자열 대신 매개 변수로 상수를 사용합니까?

For example

:

pad_type :

선택적 인수 pad_type가 STR_PAD_RIGHT, STR_PAD_LEFT, 또는 STR_PAD_BOTH 될 수 있습니다. pad_type이 지정되지 않으면 STR_PAD_RIGHT로 간주됩니다.

여기서 문자열을 매개 변수로 사용하지 않는 이유는 무엇입니까?

str_pad($test, 10, 0, 'left')

는 (이것은 메타 문제의 더 많은 것이다. 내가 여기에 물어 OK를 바랍니다.)

+0

intellisense가있는 IDE를 사용할 때 매우 큰 이점이 있습니다. – Ibu

답변

5

문자열을 입력 할 때 실수를하는 것이 더 쉽습니다 str_pad($test, 10, 0, STR_PAD_LEFT)

보다 훨씬 간단 보인다. 정의되지 않은 상수를 사용하면 경고가 발생합니다. PHP와 관련된 것이 아닙니다. 일반 API 함수 (예 : OS)는 일반적으로 이와 같은 매개 변수에 숫자 상수를 사용합니다.

+0

또한 기능을 유지 보수하기 위해 다음을 추가하십시오. 함수의 변경 사항이 변경되면 매개 변수 값 (들) 및 유형도 변경됩니다. 임의의 문자열 대신 상수로 정의하면 훨씬 더 의미가 있습니다. – FredTheWebGuy

1

그들은 방금 int 값을 사용할 수있는 상수를 좋아하지 않는 경우에 그것을보다 효율적으로 그런 식으로 대소 문자 구분의 때문에, 맞춤법 실수가, 구문 분석 문자열, IDE에 대한 더 나은 등

을 오류 .. int를 사용

str_pad($test, 10, 0, 0) == str_pad($test, 10, 0, STR_PAD_LEFT) 
1

매개 변수에 $pad_type의 유형이 실제로 int입니다 공지있다. int를 전달하는 것은 문자열을 전달 (비교)하는 것보다 훨씬 빠릅니다. 따라서 함수에 숫자를 전달하여 수행 할 작업을 지시하는 대신 해당 상수를 전달하여 코드를 명확하게 만듭니다. 그리고 PHP 개발자가 int 대신 문자열을 전달하려는 경우 상수를 사용하는 한 코드를 손상시키지 않고이를 수행 할 수 있습니다.

관련 문제