v2.5.2
Giriş yap

Php Fonksiyon "redeclare" Hatası

jct
806 defa görüntülendi

Aşağıdaki iç içe fonksiyon da "redeclare" hatası alıyorum. Mantık hatası nerede acaba. Fonksiyon herhangi bir döngü içinde çağrılmazsa sorunsuz ancak herhangi bir döngü içerisin de "redeclare" hatası alıyor.


function FONKSIYON__DENEME($A, $B){
		
	$Deger1 = $A; $Deger2 = $B;
		
		function FONKSIYON__TOPLAMA($A, $B){
			return $A + $B;
		}
		
		function FONKSIYON__CARPMA($A, $B){
			return $A * $B;
		}
		
	return FONKSIYON__TOPLAMA($Deger1, $Deger2)."-".FONKSIYON__CARPMA($Deger1, $Deger2);
}

	for($Say = 1; $Say <= 10; $Say++){
		
		echo FONKSIYON__DENEME($Say, 10);
		
	}

shelby
1679 gün önce

Sorun sanırım hafızada olan fonksiyonu php yeniden override etmiyor.

function a() {

echo 'a';

}

function a() {

echo 'a';

}

a();

Şöyle bir kullanımda da aynı hatayı veriyor. Sorun function_exists kullanarak çözülüyor çünkü bir sefer oluşturuluyor, sonra döngüde pas geçiyor.

<?php

function FONKSIYON__DENEME($A, $B){

$Deger1 = $A; $Deger2 = $B;
	if (!function_exists("FONKSIYON__TOPLAMA")) {
		function FONKSIYON__TOPLAMA($A, $B){
			return $A + $B;
		}
	}
	if (!function_exists("FONKSIYON__CARPMA")) {
		function FONKSIYON__CARPMA($A, $B){
			return $A * $B;
		}
	}
	
return FONKSIYON__TOPLAMA($Deger1, $Deger2)."-".FONKSIYON__CARPMA($Deger1, $Deger2);

}

for($Say = 1; $Say <= 10; $Say++){
	
	echo FONKSIYON__DENEME($Say, 10);
	
}