PHP 상수를 사용할 때 주의해야 할 몇 가지 문제

伊谢尔伦
풀어 주다: 2023-03-11 22:34:01
원래의
1496명이 탐색했습니다.

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

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

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

PHP의 공식 프레임워크로서 그러한 요구 사항이 있는 이유는 무엇입니까?

함께 분석해 보겠습니다.

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

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

<?php
 define(&#39;C&#39;, 12345);
 define(&#39;C&#39;, 123);
?>
로그인 후 복사

이 코드는 알림 오류를 보고합니다. 결과는 다음과 같습니다. 정의하기 전에 다른 사람이 같은 이름의 상수를 정의하면 내부 값이 무엇인지 실제로 알 수 없습니다.

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

<?php
 define(&#39;C&#39;, 12345);
 // 错误方法1,经常犯
 if (isset(C)){……}
 // 错误方法2,经常犯
 if (defined(C)){……}
 // 正确方法
 if (defined(&#39;C&#39;)){……}
?>
로그인 후 복사

3. 낮은 실행 효율성

<?php
  define(&#39;FORUM_THEME&#39;,$forum[&#39;theme&#39;]); 
  $this->display(&#39;/&#39;.FORUM_THEME.&#39;@Public:login&#39;); 
  // 系统会从整个执行流程中查找FORUM_THEME
?>
로그인 후 복사

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

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

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

<?php
 class foo {
  const WEBSITE = "www.zhuyinghao.com";
  protected $_forum_theme;
  function name()
  {
    echo WEBSITE;
    $this->_forum_theme = $forum[&#39;theme&#39;];
  }
  function displace() 
  {
    echo $this->_forum_theme;
  }
 }
?>
로그인 후 복사

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

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

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

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

줄 바꿈을 위해 /r/n을 대체하기 위해 PHP EOL을 사용하세요

줄 바꿈은 프로그램을 작성할 때 줄 바꿈을 위해 PHP에 내장된 상수 PHP_EOL을 사용하는 경우가 많습니다.

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

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

위 내용은 PHP 상수를 사용할 때 주의해야 할 몇 가지 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿