[PHP] Wygenerowany string jako warunek


(hoobert) #1

Witam, jestem w trakcie pisania funkcji, sprawdzającej czy istnieją zmienne wysłane z formularza.

Kod wygląda następująco:

<?php


function sprawdz()

{

	$ilosc_arg = func_num_args();

	$wart_arg = func_get_args();	

	$warunek = "";


	for($i=0;$i<$ilosc_arg;$i++)

	{

		if($i!=$ilosc_arg-1)

		{

		   	$warunek .= 'isset($_POST[\''.$wart_arg[$i].'\']) && ';

		}

		else $warunek .= 'isset($_POST[\''.$wart_arg[$i].'\'])';

	}


	if($warunek)

	{

		return true;

	}

	else

	{

		return false;

	}

}


sprawdz('imie','nazwisko','wiek','adres');


?>

$warunek w tym wypadku powinien przyjąć wartość $warunek = "isset($_POST['imie']) && isset($_POST['nazwisko']) && isset($_POST['wiek']) && isset($_POST['adres'])"Teraz chciałbym żeby ta zmienna była warunkiem instrukcji warunkowej, natomiast w momencie utworzenia kodu

if($warunek)

   {

      return true;

   }

   else

   {

      return false;

   }

zawsze będzie zwracał true, gdy funkcja w momencie wywołania będzie posiadać jakieś parametry. Czy istnieje możliwość aby instrukcja warunkowa zwracała wartość true kiedy wygenerowany string z warunkiem będzie prawdziwy? Tzn, żeby interpretowało to w ten sposób:

if(isset($_POST['imie']) && isset($_POST['nazwisko']) && isset($_POST['wiek']) && isset($_POST['adres']))

   {

      return true;

   }

   else

   {

      return false;

   }

(Fiołek) #2

eval, ale zamiast tak kombinować o wiele łatwiej będzie to sprawdzić w pętli:

for($i=0;$i<$ilosc_arg;$i++)

(hoobert) #3

OK o to chodziło. Dzięki.