PHP 에서 흔히 볼 수 있 는 6 가지 오류 알림 및 해결 방법

7486 단어 php잘못error
php 개발 과정 에서 누구 에 게 도움 을 청 할 지 몰라 당 황 스 럽 게 php 를 배우 기 에 적합 하지 않다 고 판단 했다.사실 잘못 은 모든 사람 이 공부 하 는 과정 에서 만 날 수 있 으 니 절대 함부로 자신 을 비하 해 서 는 안 된다.많은 오류 가 잘못된 코드 알림 에서 우리 에 게 알려 주 었 습 니 다.자세히 보면 바 이 두 가 아 닙 니 다.현재 흔히 볼 수 있 는 php 오 류 를 정리 하여 php 신인 을 공유 합 니 다.
Php 자주 발생 하 는 오류 알림
1.치 명 적 인 오류:정의 되 지 않 은 기능 에 호출....
함수 가 존재 하지 않 습 니 다.가능 한 이유:
1.시스템 에 이 함수 가 존재 하지 않 고 사용자 정의 도 하지 않 습 니 다.
2.어떤 사람 이 물 어 볼 것 이다.나 는 다른 기계 에서 잘못 을 보고 하지 않 는 다.그것 은 환경 이 다 르 기 때문에 이 함수 가 이 컴퓨터 에서 켜 지지 않 았 는데 어떻게 켜 지 죠?바 이 두 함수 이름 을 사용 하면 이 함수 가 어느 dll 에 속 하 는 지 알 수 있 습 니 다.phop.ini 에서 열 립 니 다.
인 스 턴 스 설명:PHP FATAL ERROR:CALL TO UNDEFINED FUNCTION BCMUL()해결 방법
네트워크 결 제 를 처리 하 는 서버 이전 을 할 때 지불 할 수 없 음 을 발견 했다.
PHP 환경:
PHP 버 전 5.3.3
시스템 은 Red Hat 4.1.2-54
apache 의 오류 로 그 를 보 니 암호 화 파일 의 함수 bcmul()오류 가 발생 했 습 니 다.
PHP Fatal error: Call to undefined function bcmul() in /php_rsa.php on line xxx
해결 방법:
다음 명령 사용:
yum install php-bcmath
설 치 됐 습 니 다.
다음 과 같은 상황 이 발생 하면:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.yun-idc.com
* extras: mirrors.yun-idc.com
* rpmforge: ftp.riken.jp
* updates: mirrors.yun-idc.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-bcmath.x86_64 0:5.1.6-40.el5_9 set to be updated
--> Processing Dependency: php-common = 5.1.6-40.el5_9 for package: php-bcmath
--> Running transaction check
---> Package php-common.x86_64 0:5.1.6-40.el5_9 set to be updated
--> Processing Conflict: php53-common conflicts php-common
--> Finished Dependency Resolution
php53-common-5.3.3-13.el5_9.1.x86_64 from installed has depsolving problems
--> php53-common conflicts with php-common
Error: php53-common conflicts with php-common
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
yum update 를 사용 하고 yum install php53-bcmath 를 사용 하면 됩 니 다.
참고 로 bcmath 라 는 함 수 는 PHP 수학 확장 중의 하나 입 니 다.bcscale()를 사용 하여 전역 기본 소수 자릿수 를 설정 할 수 있 습 니 다.구체 적 인 용법 은 다음 과 같 습 니 다.
string bcmul ( string $left_operand , string $right_operand [, int $scale ] )
예:

<?php
echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8
?>

php.ini 에서 이 함수 의 옵션:

[bcmath]
; Number of decimal digits for all bcmath functions.
; http://www.php.net/manual/en/bc.configuration.php#ini.bcmath.scale
bcmath.scale = 0
2.구문 오류,예기 치 않 은 TSTRING, expecting……
심각 한 문법 오류,예 를 들 어 syntax error,예기 치 않 은 TSTRING, expecting ',' or ';' in F:\phpnow\htdocs\index.php on line 4
뒤에 줄 번호 가 표시 되 어 있 으 니,스스로 그 줄 의 구두점 을 검사 하면 된다.
만약 세 번 째 줄 echo 1 뒤에 추가 하지 않 았 다 면,잘못 보고 하면 on line 4,on line 4,바로 네 번 째 줄 입 니 다.
실례 설명:
사실 이것 은 매우 쉽게 해결 할 수 있 는 문제 다.내 가 보기 에는 일찍이 만난 적 이 있 는 것 같다.하하,최근 에 자 바스 크 립 트 를 배 웠 지만 var 성명 변 수 를 사용 하 는 것 을 배 웠 다.
사실 PHP 에 서 는 var 성명 을 사용 할 필요 가 없 지만 하나의 변수 가 하나의 구성원 변수 일 때 var 를 사용 하 는 것 은 문제 가 없습니다.
외부 에서 var 를 사용 하면 Parse error:syntax error,unexpected T 를 잘못 알 립 니 다.VAR in...,예 를 들 어 나의 오류 메시지:
Parse error: syntax error, unexpected T_VAR in D:\Apache2.2\htdocs\shirdrn\page\p2\pageUtil.inc on line 34
테스트 중:한 클래스 의 내부 에서 자신 이 정의 한 클래스 대상 을 이 클래스 의 구성원 으로 사용 할 때 오류 가 발생 했 습 니 다.
address 클래스 에 대응 하 는 address.inc 코드:

<?php
class Address {
var $road;
function Address(){}
function setRoad($road){
$this->road = $road;
}
}
?>
Person 클래스 와 그 테스트 코드 는 person.php 입 니 다.다음 과 같 습 니 다.

<?php
require("address.inc");
class Person {
var $name;
var $address;
function Person(){
}
function display(){
echo "Name : ".$this->name."<BR>";
echo "Road : ".$this->address->road."<BR>";
}
}

var $p = new Person();
$p->address = new Address();
$p->address->setRoad("Chagnchun Road");
$p->name = "Shirdrn";
$p->display();
?>


테스트 패 이상 발생:
Parse error: syntax error, unexpected T_VAR in D:\Apache2.2\htdocs\shirdrn\page\p2\pageUtil.inc on line 34
person.php 코드 에서 var 성명 변 수 를 사용 하기 때문에 PHP 에 서 는 이 럴 수 없습니다.'$'기 호 를 사용 하면 이 문자 뒤에 있 는 것 이 PHP 변 수 를 표시 합 니 다.
하하:-)
다른 네티즌 들 의 보충 방법:
문제 해결:syntax error,unexpected TSTRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or 는 이틀 전부터 자신의 phop 여행 을 시작 하여 매우 일반적인 사 이 트 를 만 들 었 습 니 다.그 결과 우리 의 phop 은 5.0 버 전 이 고 서버 는 4.0 버 전 입 니 다.궁금 해 죽 겠 습 니 다.어 제 는 하루 종일 바 빴 는데 오늘 아침 에 와 서 한 편의 글 에서 해결 방법 을 발견 했다.Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or'}','Public'가 있 으 면'Public'를 제거 합 니 다.'Public'가 정의 변수 라면'Public'를'var'로 바 꾸 는 것 이 잘못 되 지 않 습 니 다.
3.Parse error:구문 오류,예기 치 않 은 TVARIABLE in XXX.php on line XXX
이 문 구 는 PHP 에서 흔히 볼 수 있 는 오류 입 니 다.보통 XXX 줄 의 이전 줄 이나 XXX 줄 에 분점 이 부족 합 니 다.또는 더 블 따옴표 에 더 블 따옴표 를 사용 하고 전의 가 없다 는 등.
해결 방법:XXX.php 의 XXX 줄 을 찾 아 위의 분석 에 따라 자신의 잘못 을 찾 아 고치 면 됩 니 다.
팁:프로그래머 로 서 코드 가 엄밀 하고 사고 가 뚜렷 하 며 세심 해 야 합 니 다.사람 이 성현 이 아니면 누가 잘못 이 없 을 수 있 겠 는가?그러나 부주의 로 인 한 실 수 를 최대한 피해 야 합격 한 프로그래머 가 될 수 있다.
4.Parse error:syntax error,unexpected'X'in XXX.php on line XXX
이 문 구 는 여전히 PHP 에서 흔히 볼 수 있 는 오류 입 니 다.오류 원인 은 XXX.php 의 XXX 줄 에서 PHP 가 식별 할 수 없 는 문자 가 나 타 났 기 때 문 입 니 다.흔히 function,if 등'{','}'이 필요 한 곳 이 닫 히 지 않 거나 프로 그래 밍 을 할 때 조심 하지 않 으 면';'의 뒤에 몇 글자 가 잘못 걸 렸 다.
해결 방법:XXX.php 의 XXX 줄 을 찾 아 더 많은 문 자 를 삭제 하고 부족 한 문 자 를 추가 하면 됩 니 다.
5.구문 오류,예기 치 않 은$end 
논리 가 닫 히 는 것 을 잊 었 다.  이 오 류 는 또 하나의 특징 이 있다.그 는 너 에 게 마지막 줄 의 코드 가 잘못 되 었 다 는 것 을 알려 줄 것 이다.예 를 들 어 네가 모두 30 줄 이 라면 그 는 너 에 게 on line 30 을 알려 줄 것 이다.이때 너 는 30 줄 을 검사 하지 말고 30 줄 을 하나씩 검사 하고 어떤 라벨 이 닫 히 지 않 았 는 지 봐 야 한다.
모두 3000 줄 입 니 다.그 는 당신 에 게 on line 3000 을 알려 줄 것 입 니 다.이 럴 때 당신 은 이 3000 줄 을 검사 하지 마 세 요.만약 당신 의 프로그램 이 매우 복잡 하 다 면 3000 줄 에서 어떤 괄호 를 찾 는 것 은 매우 번 거 로 운 일 입 니까?
자,이제 다시 써 도 됩 니 다.
다른 사고방식:
Parse error: syntax error, unexpected $end in script.php on line xx
잠시 디 버 깅 한 후에 오류 가 발생 한 줄 이 파일 중간 줄 이라는 것 을 알 게 되 었 습 니 다.
//$str .= "?>";
PHP 해석 기 가 허용 하 는 끝 에 그 줄 을 표시 하 는 것 이 생각 났 습 니 다.즉/$str.="?>";끝 표시 로 해석 되 기 전에 주석 이 있 습 니 다.주석 내용 은//$str.="이 고?>뒤의PHP 블록 밖의 내용 으로 해석 되 어 HTML 로 출력 됩 니 다!결 과 는$str.="?>";이 줄 에//주석 을 추가 한 후 오히려 하나 가 더 생 겼 습 니까?>의 끝 표 시 는 원래 의 끝 표 시 를 예상 치 못 한(unexpected)로 만 들 었 습 니 다.
해결 방법 은 바로 이 줄 을 삭제 하면 된다.
PHP 시작 과 끝 표시 줄 에 다른 것 을 쓰 지 않 는 것 이 좋 은 습관 입 니 다.
6.Notice:Undefined varialbe:.....
이것 은 비교적 흔히 볼 수 있 는 오류 입 니 다.해결 방법:errorreporting 오류 단계 조정,
이상 은 여러분 에 게 공 유 된 PHP 에서 흔히 볼 수 있 는 6 가지 잘못된 힌트 입 니 다.여러분 에 게 대략적인 해결 방향 과 방향 을 제공 하고 여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기