매개변수 처리 메커니즘 수정
1. 중복된 매개변수 이름 지정은 더 이상 지원되지 않습니다.
중복 매개변수 이름 지정은 더 이상 지원되지 않습니다. 예를 들어, 다음 코드는 실행 시 오류를 보고합니다.
public function foo($a, $b, $unused, $unused) { // ... }편집자 주: 누구도 이와 같이 사용해서는 안 됩니다.
2. func_get_arg 및 func_get_args()
func_get_arg() 및 func_get_args() 메서드를 조정하면 전달된 값이 아닌 매개변수의 현재 값이 반환됩니다. 현재 값은 수정될 수 있습니다.
function foo($x) { $x++; var_dump(func_get_arg(0)); } foo(1);위 코드는 1 대신 2를 인쇄합니다. 원래 값을 인쇄하려면 호출 순서를 조정하면 됩니다.
3. 예외 추적 정보를 인쇄할 때 수정된 값도 표시됩니다.
function foo($x) { $x = 42; throw new Exception; } foo("string"); PHP7的运行结果:Stack trace: #0 file.php(4): foo(42) #1 {main} PHP5的运行结果:Stack trace: #0 file.php(4): foo('string') #1 {main}이 조정은 코드 동작에 영향을 미치지 않지만 디버깅할 때 이 변경 사항에 주의해야 합니다.
debug_backtrace()와 같은 매개변수와 관련된 다른 함수도 동일한 조정을 받습니다.