>백엔드 개발 >PHP 튜토리얼 >PHP 상수를 사용할 때 주의할 사항(PHP에서 상수를 주의해서 사용하세요)_php Tips

PHP 상수를 사용할 때 주의할 사항(PHP에서 상수를 주의해서 사용하세요)_php Tips

WBOY
WBOY원래의
2016-05-16 20:36:141044검색

PHP에서 상수를 주의해서 사용해야 하는 이유는 무엇입니까?

Zend Framework 문서에 따르면 상수에는 영숫자와 밑줄이 포함되며 숫자는 상수 이름으로 허용됩니다. 상수 이름의 모든 문자는 대문자여야 합니다. 클래스 상수는 "const"를 통해 클래스의 멤버로 정의되어야 하며 "define"으로 정의된 전역 상수의 사용은 권장되지 않습니다.

PHP의 공식 프레임워크로서 왜 그러한 요구 사항이 있습니까?

함께 분석해 보겠습니다.

1. 정의는 예상치 못한 오류가 발생하기 쉽습니다

PHP 상수는 정의된 후에는 수정하거나 다시 할당할 수 없습니다. 하지만 다시 할당되면 어떻게 되나요?

<&#63;php
 define('C', 12345);
 define('C', 123);
&#63;>

이 코드는 알림 오류를 보고합니다. 결과는 다음과 같습니다. 정의하기 전에 다른 사람이 동일한 이름의 상수를 정의하면 해당 상수에 어떤 값이 포함되어 있는지 실제로 알지 못할 수 있습니다.

2. PHP 상수가 정의되어 있는지 확인하는 방법은 무엇입니까? 판단방법을 작성할 때 실수하기 쉽습니다

<&#63;php
 define('C', 12345);
 // 错误方法1,经常犯
 if (isset(C)){……}
 // 错误方法2,经常犯
 if (defined(C)){……}
 // 正确方法
 if (defined('C')){……}
&#63;>

3. 낮은 실행 효율성

<&#63;php
  define('FORUM_THEME',$forum['theme']); 
  $this->display('/'.FORUM_THEME.'@Public:login'); 
  // 系统会从整个执行流程中查找FORUM_THEME
&#63;>

PHP는 상수 처리 시 다중 검색을 수행해야 하기 때문에 효율성이 낮습니다.

요약: PHP 상수의 문제점은 PHP의 상수 처리 방법이 너무 느슨하다는 것입니다. 이를 더 엄격하게 적용하면 많은 문제를 피할 수 있습니다. 실제 프로세스에서는 변수를 사용할 수 있다면 상수를 사용하지 않는 것이 좋습니다. 변수를 사용하는 것이 더 효율적이고 사용하기 편리하기 때문입니다.

따라서 상수나 클래스 변수를 사용해야 하는 경우 다음 방법을 사용할 수 있습니다.

<&#63;php
 class foo {
  const WEBSITE = "www.zhuyinghao.com";
  protected $_forum_theme;
  function name()
  {
    echo WEBSITE;
    $this->_forum_theme = $forum['theme'];
  }
  function displace() 
  {
    echo $this->_forum_theme;
  }
 }
&#63;>

클래스 이름과 함수 이름이 같으면 어떻게 되나요?

PHP 4에서는 클래스의 생성자가 클래스 이름과 동일해야 하며, 하위 클래스의 생성자 이름은 하위 클래스 이름과 동일해야 합니다. 상위 클래스의 생성자는 자동으로 실행되지 않습니다. 서브클래스. 하위 클래스에서 상위 클래스의 생성자를 실행하려면 다음과 유사한 문을 실행해야 합니다.

$this->[부모 클래스의 생성자 이름()]

PHP 5.0 이상에서는 constructor()가 생성자로 일률적으로 사용되지만 여전히 버전 4.0의 생성자 정의 규칙과 호환됩니다. 4.0 생성자와 constructor() 함수가 모두 정의된 경우 constructor() 함수가 우선합니다.

PHP EOL을 사용하여 줄 바꿈을 위한 /r/n 대체

줄 바꿈은 프로그램을 작성할 때 자주 사용됩니다. PHP 내장 상수 PHP_EOL을 사용하여 줄 바꿈을 수행합니다.

플랫폼마다 다르게 구현되는 작은 줄바꿈입니다. 유닉스 세계에서는 줄 바꿈을 대체하는 데 n이 사용되지만 차이점을 반영하기 위해 Windows에서는 다음을 사용합니다. n, 그리고 더 흥미롭게도 Mac에서는 r입니다. 따라서 Unix 계열은 n을, Windows 계열은 rn, mac은 r을 사용합니다.

따라서 시스템은 플랫폼 시스템에 따라 이를 다른 줄 바꿈으로 변환합니다. 브라우저에서 줄 바꿈을 하려면 PHP_EOL 변수를 사용하여 줄 바꿈을 해야 합니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.