Ik heb een fout in mijn script.

maar ik weet niet waarom dit niet kan.
zou iemand mij kunnen helpen.

<?
if (!isset ($SETTINGS['opdr_menu']))
$SETTINGS['opdr_menu'] = '';


switch ( strtolower( $SETTINGS['opdr_menu'] ) ):

	case 'inloggen':
		$midden				= maak_inloggen($SETTINGS);
		break;
	case ''.$SETTINGS['opdr_menu'].'':
		  $midden             = maak_.''.$SETTINGS['opdr_menu'].''.( $SETTINGS );	
		  break;
	default:
		 $midden             = maak_home( $SETTINGS );	
		  break;
	endswitch;


?>
endswitch ken ik niet en die : hoort daar niet en gebruik {}

switch ( $v ){
case 3:
echo ‘3’;
break;
case 2:
echo ‘3’;
break;
default :
echo ‘default’;
break;
}
zonder endswitch krijg ik een foutmelding:

Parse error: syntax error, unexpected '{', expecting T_ENDSWITCH or T_CASE or T_DEFAULT in /home/vhosts/ehborijnsburg.nl/subdomains/vtv/httpdocs/incl/vtv/vtv_opdracht.php on line 7

Bij het oude script kreeg ik de foutmelding:
Notice: Use of undefined constant maak_ - assumed 'maak_' in /home/vhosts/ehborijnsburg.nl/subdomains/vtv/httpdocs/incl/vtv/vtv_opdracht.php on line 12
De syntax die je voor je switch gebruikt, is niet erg gebruikelijk. De meest gangbare syntax is degene die ruud je aanreikt.

Echter is dat het probleem niet. Dat wordt namelijk veroorzaakt door dit stukje:
<?php
maak_.''.$SETTINGS['opdr_menu'].''.( $SETTINGS );
?>
Het is niet mogelijk om op deze manier een functie aan te roepen. Als je een functie met een variabele naam aan wilt roepen, gebruik dan [php]call_user_func()[/php]. Dus in jouw geval iets als:
<?php
call_user_func('maak_' . $SETTINGS['opdr_menu'], $SETTINGS);
?>
Bedankt

Volgens mij werkt het.

Reageren