php 함수 전달 값 의 인용 전달 주의사항 분석

본 고의 실례 는 php 함수 전달 값 의 인용 전달 주의사항 을 설명 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
Strict standards: Only variables should be passed by reference
인터넷 에서 자 료 를 찾 았 다 는 말 이 있 습 니 다.
php 5.3 이상 버 전에 서 이 문제 가 발생 할 수 있 습 니 다.php 설정 과 관련 이 있 을 것 입 니 다.이 문장 을 두 마디 로 뜯 으 면 문제 가 없습니다.array 때문에walk 의 매개 변 수 는 전달 을 참조 하 는 것 입 니 다.5.3 이상 의 기본 값 은 구체 적 인 변수 만 전달 할 수 있 고 함수 로 값 을 되 돌려 줄 수 없습니다.물론 php.ini 의 error 도 수정 할 수 있 습 니 다.reporting = E_ALL | E_STRCT,그러나 이것 은 결국 규범 에 부합 되 지 않 는 다.

$suffix = array_pop(explode(".",$file_name));

왜 하 이 버 전이 이렇게 제한 되 나 요?
나 는 수첩 의 함수 원형 을 보 러 간다.

mixed array_pop ( array &$array )
bool array_walk ( array &$array , callable $funcname [, mixed $userdata = NULL ] )

&기 호 는 변 수 를 입력 하 는 것 을 지정 하고 인용 방식 으로 전달 합 니 다.
다음으로 변경:

$file_name_arr = explode(".",$file_name);
$suffix = array_pop($file_name_arr);

그냥.
사실 경고 만 했 을 뿐이다.치 명 적 인 잘못 이 아니 라정상 적 인 결 과 는 얻 을 수 있다.예 를 들 어 파일 이름 의 접 두 사 를 얻 는 것 은 정상 입 니 다.
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기