PHP 심각한 치명적 오류 처리:php 치명적 오류: 클래스 또는 함수를 다시 선언할 수 없습니다.

墨辰丷
풀어 주다: 2023-03-28 06:48:01
원래의
2674명이 탐색했습니다.

이 글에서는 주로 PHP 심각한 오류 처리에 대해 소개합니다: php 치명적 오류: 클래스나 함수를 다시 선언할 수 없으며, 필요한 친구가 참조할 수 있습니다

1 오류 유형: PHP 치명적 오류

오류 유형: PHP 치명적 오류
치명적 오류: (d)

2행의 (c)에서 (a)(이전에 (b)에서 선언됨)를 다시 선언할 수 없습니다. 오류 설명:

이 오류 보고서는 이미 선언된 함수를 다시 작성하려고 함을 나타냅니다. 다시 정의합니다. 여기서

a----는 반복적으로 정의된 함수 이름을 나타냅니다.
b---- 함수가 처음 정의될 때의 파일 이름과 줄 번호입니다. - 두 번째로 함수를 정의할 때의 파일명
d----두 번째로 함수를 정의할 때의 줄 번호.

3. 이유 및 해결책:

원인:

function myFunction(){}

function myFunction(){}

과 같이 함수를 정의하기 위해 연속으로 두 번 같은 이름을 사용합니다. 다음과 같이

치명적인 오류:1번째 줄에서 myfunction()(이전에 선언된 in(path):2)in(path)을 다시 선언할 수 없습니다.

해결책:

이미 선언된 함수를 찾아 다시 정의해야 하는 이유가 무엇인지 확인하세요. . 이전에 정의된 것을 잊어버린 경우 선언 중 하나를 삭제하면 됩니다. 예를 들어, 스크립트 파일이 매우 혼란스러운 방식으로 배열되어 있고 많은 수의 include() 및 기타 함수를 사용할 수 있으므로 혼란스러운 코드에서 아이디어를 분류하기가 어렵습니다. 하지만 PHP 버전이 비교적 새로운 경우(PHP 5.3.8+), 함수를 반복적으로 정의해야 하는 상황을 네임스페이스를 사용하면 해결할 수 있을 것 같습니다.

4 어딘가에서 오류가 보고될 것입니다.

해결책: 두 번째 Foo를 제거하거나 이름을 바꾸세요.

반복적인 정의를 방지하기 위해 새 클래스를 정의할 때 해당 클래스가 이미 존재하는지 여부를 확인할 수 있습니다.


<?php 
class Foo {} 
// some code here 
class Foo {} 
?>
로그인 후 복사

2) 동일한 클래스 파일을 반복적으로 포함합니다.

예: 특정 클래스 파일의 경우 some_class .php,

include "some_class.php";

in b.php

include "a.php"; "a.php";

include "some_class.php";

는 오류를 보고합니다.

해결책: 위의 모든 include를 include_once로 대체하세요

3) 이 클래스는 PHP 클래스 라이브러리에 내장된 클래스입니다.

판정 방법: 빈 파일에

if(class_exists(&#39;SomeClass&#39;) != true) 
{ 
 //put class SomeClass here 
}
로그인 후 복사

을 작성합니다. 이때 Cannot redeclare class Com이라는 메시지가 표시되어 이 클래스가 PHP 내장 클래스임을 나타냅니다. 사용할 수 없습니다.


또한 Com과 같이 너무 많이 사용되는 클래스 이름은 사용하지 마세요. 이 클래스는 Linux에서 사용할 때는 정상일 수 있지만 Windows 환경에서는 실행되지 않습니다.

제가 온라인에서 찾은 또 다른 해결책을 기억해두세요. 어떤 상황에서는 유용할 수도 있습니다. 기억하세요.

<?php 

class Com 
{ 
 

} 
?>
로그인 후 복사

위 내용이 모든 사람의 연구에 도움이 되기를 바랍니다.

관련 권장사항:

PHP에서

fatal

오류 인스턴스를 차단함


php 치명적인 오류를 캡처하는 방법

php 변수 변수의 치명적인 오류: 읽기에 []를 사용할 수 없음

위 내용은 PHP 심각한 치명적 오류 처리:php 치명적 오류: 클래스 또는 함수를 다시 선언할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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