source

참조로 새 반환 값을 할당하는 것은 더 이상 권장되지 않습니다.

ittop 2023. 7. 31. 21:54
반응형

참조로 새 반환 값을 할당하는 것은 더 이상 권장되지 않습니다.

방금 오류가 발생했습니다.

다음과 같은 개체를 할당하려고 할 때:

$obj_md = new MDB2();

"참조를 통해 새 반환 값을 할당하는 것이 더 이상 권장되지 않습니다."라는 오류 메시지가 표시됩니다.사실 저는 해결책을 찾고 있었지만 제가 본 유일한 방법은 php.ini(error_reporting)의 정책을 거절하는 것입니다.저도 해봤는데 잘 안 됐어요.

PHP5에서 이 관용구는 더 이상 사용되지 않습니다.

$obj_md =& new MDB2();

샘플 코드에서 앰퍼샌드를 빠뜨린 게 확실합니까?이렇게 하면 사용자가 지정한 경고가 생성되지만 필수는 아니며 제거할 수도 있습니다.

이 관용구가 PHP4에서 사용된 이유를 보려면 이 설명서 페이지를 참조하십시오(PHP4는 오래 전에 삭제되었으며 이 링크는 관련 페이지의 보관된 버전에 대한 것임을 참고하십시오).

최근 SimplePie(http://simplepie.org/) 를 사용하여 사이트를 PHP 5.2.17을 사용하던 서버에서 PHP 5.3.2를 사용하는 서버로 이동했습니다.이 이동 후 다음과 같은 오류 메시지 목록을 받기 시작했습니다.

사용되지 않음:참조를 통해 새 반환 값을 할당하는 것은 .../php/simplepie에서 더 이상 사용되지 않습니다.738호선에서

저는 이 문제에 대해 몇 번의 논의를 거친 후 심플 파이에서 =&new의 모든 인스턴스를 =new로 교체하여 정리했습니다.줄로 늘어선

이러한 오류 메시지가 수신되는 모든 경우에 이 기능이 작동하는지 여부를 알 수 있을 정도로 경험이 부족하지만 이 경우에는 효과가 있어 시도해 볼 가치가 있을 수 있습니다.

아마도 MDB2의 생성자는 $165 = & new ClassName()을 사용하는 코드를 가지고 있을 것입니다.

Nitin이 맞습니다. 실제로 MDB2 코드에 문제가 있습니다.

PHP 5.3의 PEAR: MDB2 교체에 따라 PHP 5.3과 호환되는 버전의 경우 MDB2의 SVN 버전으로 업데이트할 수 있습니다.

그 답변은 2010년 3월에 제공되었고, http://pear.php.net/package/MDB2/ 은 몇 달 후에 출시된 것을 보여주기 때문에, 저는 현재 버전의 MDB2도 이 문제를 해결할 수 있을 것으로 기대합니다.

저도 같은 문제가 있었습니다.저는 이미 '&'을 가지고 있었지만 여전히 같은 경고를 보내고 있었습니다.저는 WAMP와 함께 PHP 5.3을 사용하고 있는데 REMOVE '&' 사인만 하면 경고가 사라졌습니다.

$obj= new stdClass();  //Without '&' sign.

PHP에서 객체를 메서드에 전달하거나 참조를 통해 새 객체를 변수에 할당하는 데 사용됩니다.PHP 5는 기본적으로 모든 개체를 참조로 전달하기 때문에 PHP 5에서는 더 이상 사용되지 않습니다.

제거하기만 하면 됩니다.new에 시대에$obj_md =& new MDB2();

이것은 줌라가 아닌 WAMP 2.0i 패키지로 제공되는 PHP 5.3 때문에 발생했습니다.

두 가지 방법으로 고칠 수 있어요

WAMP 2h(이전 버전)를 사용하거나 WAMP 웹 사이트에서 PHP 5.2.9-2 애드온을 다운로드합니다.

콘솔에서 pear/MDB2를 업그레이드합니다.

# pear upgrade MDB2-beta
# pear upgrade MDB2_Driver_Mysql-beta

버전 2.5.0b3에서 문제 해결

C:\wamp\www\..\libraries\pattemplate

1.ini_set('display_errors', 0);

$this->_modules[$moduleType][$sig]  =&new $moduleClass;   wrong

$this->_modules[$moduleType][$sig]  =new $moduleClass;   Right

언급URL : https://stackoverflow.com/questions/1086539/assigning-the-return-value-of-new-by-reference-is-deprecated

반응형