v2.5.2
Giriş yap

Php Fonksiyon "redeclare" Hatası

jct
709 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
1439 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
1439 gün önce

@shelby teşekküler

arco
1439 gün önce

@shelby dediği gibi class kullanabilirsin hocam.

jct
1439 gün önce

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

shelby
1439 gün önce

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