v2.5.2
Giriş yap

Php Fonksiyon "redeclare" Hatası

jct
804 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);
		
	}

Cevap yaz
Cevaplar (5)
shelby
1676 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);
	
}
jct
1676 gün önce

@shelby teşekküler

arco
1676 gün önce

@shelby dediği gibi class kullanabilirsin hocam.

jct
1677 gün önce

@shelby aynı fikirdeyim bende böyle bir kullanıma rastlamadım :) ama hata vermesinin nedenini de merak etmiyorum değil :)

shelby
1677 gün önce

Php'de böyle hiç kullanım görmedim. Kabul eder mi bilmiyorum. Bu işlemin için class yazabilirsin.