2010-03-28 7 views
0

필자는 기호를 사용하는 것이 유효 할 때를 제외하고는 작성하지 말 것을 PHP 책을 통해 읽고 있습니다. 그는 코드 예제 만 설명하거나 제공 할 수는 있지만 유익하지는 않습니다.PHP에서 심볼을 사용하거나 사용하지 않을 때

경험 많은 PHP 대열에 속한 사람이이 기호가 무엇인지, 그리고 그 기호를 사용하는 것이 맞는지 아닌지에 대한 예를 보여줄 수 있습니까? 코드 예제를 찾고 있는데, 보통 영어로는 이해할 수 없기 때문에 머리를 감쌀 수 있습니다. 코드는 영어로 더 평범합니다.

편집 :

그는 당신이 문자열이 글로벌 및 상수 만들 것 '기호'와 같은 문자열을 정의 할 수 있지만, 상수이고 실수 나에 의해 변경 될 수 없기 때문에 그것은 보안을 위해 좋은 말한다 의도적으로. 나는 그 상징이 언제 사용되는지에 대한 구체적인 예를 찾고있다.

+7

이 기호가 무엇인지는 아무도 모릅니다. –

+0

상수를 의미합니까? – karim79

+0

책의 이름 또는 ISBN은 무엇입니까? – Gordon

답변

6

나는 Constants이라고 생각 하나?

PHP에서 이들을 사용하는 것에 대한 커다란 이유 중 하나는 상수가 정의되어 있지 않으면 PHP는 그것을 문자열 값으로 해석하여주의를 돌리는 것이지 치명적인 오류는 아니라는 점입니다. .

define("NUMBER_OF_PAGES", 1); 

echo NUMBER_OF_PAGES; // outputs "1" 

echo NUMBR_OF_PAGES; // outputs literally "NUMBER_OF_PAGES" and throws 
         // Notice: Use of undefined constant NUMBR_OF_PAGES - 
         // assumed 'NUMBR_OF_PAGES' in xyz 

// constant() is a workaround but it takes away a lot 
// of a constant's elegance IMO: 

echo constant("NUMBER_OF_PAGES"); // Returns "1" 
echo constant("NUMBR_OF_PAGES"); // Returns null 

이 상수 다소 오류가 발생하기 쉬운, 특히 덜보다 완벽한 사용하여 코딩 관행 (아무것도하지만, 아무 곳이나 나쁜 근처에 정의되지 않은 사용 등으로 수십 E_NOTICE 메시지 수백 트리거 이전 응용 프로그램에서의 사용을합니다 상수) 오류를 감지하기 어렵게 만듭니다.

E_NOTICE 레벨 메시지를 처리 ​​(및 고지) 할 수 있기 때문에 응용 프로그램이 더 깨끗해지면 문제가 줄어 듭니다. 그래도 정의되지 않은 상수는 내 마음에 치명적인 오류가되어야하며이 오류는 설계 오류라고 생각합니다.

조회 기능이있는 IDE로 문제를 다소 완화하고 오타를 피할 수 있습니다.

존재하지 않는 상수 이름이 주어지면 NULL을 반환하는 함수 constant()도 있습니다. (위의 코드를 참조하십시오.)

구체적인 사용 예 :

상수들은 현재 경로 및/또는 URL 정의하는 데 사용됩니다 :

define("APP_WEBROOT", "http://www.mydomain.com/appname"); 
define("APP_WEBROOT_PATH", "/var/www/mydomain/appname"); 

또는 전체 설정을 정의하려면 다음을 수행하십시오.

define("MAX_PAGES", 100); 
define("MAX_ITEMS_PER_PAGE", 250); 
관련 문제