Jump to content
php.lv forumi

switch vai if


waplet

Recommended Posts

man patīk if, tāpēc ka (protams, jūs jau visi nojaušat), ka tā ir īsāk :D:D:D

 

salīdziniet paši:

if ($_GET['p'] == 'about' {
  ...
}
if ($_GET['p'] == 'news' {
  ...
}
if ($_GET['p'] == 'contact' {
  ...
}

switch ($_GET['p']) {
case 'about':
   ...
   break;
case 'news':
   ...
   break;
case 'contact':
   ...
   break;
}

119 baiti vs 133 baiti (un 9 rindiņas vs 11 rindiņas)

 

ok tā atšķirība nav liela, taču if man patīk arī ar to, ka tas ir more lightweight. tipa nevajag nekādas masīvas case/break struktūras, bet ir vnk {}

Link to comment
Share on other sites

tieši tā 2easy.

+ Lai atvieglotu sev dzīvi esmu izveidojis kaut ko tādu:

  <?php 

if($_GET['lapa'])
{
$fails =  "_lpps_/".$_GET['lapa'].".php";
    if(file_exists($fails))
    {
    include "_lpps_/".$_GET['lapa'].".php"; 
    }
    else
    {
    echo "Notikusi kļūda!";
    }
} 
else
 {
 include "_lpps_/jaunumi.php";
 }

                   ?>

 

un tad vnk metu failus "_lpps_" folderā

Edited by anonīms
Link to comment
Share on other sites

es "dzīvi atvieglotu" vēl vairāk ;)

if($_GET['lapa']) {
   $fails =  "_lpps_/".$_GET['lapa'].".php";
   if(file_exists($fails)) include $fails; 
   else echo "Notikusi kļūda!";
}
else include "_lpps_/jaunumi.php";

Edited by 2easy
Link to comment
Share on other sites

es jau ļoti labi apzinos, ka vienā atsevišķā koda fragmentā tas ir pilnīgs sīkums, bet kodējot visu lapu, tādi sīkumi pamatīgi uzreizinās. tāpēc pieturos pie tāda askētiska stila, lai kods neizplestos kilometriem tālu :D:D:D

 

lab lab, 3-4 rindiņas mazāk :D

tomēr 10x rindiņas mazāk ;) (un tas uz tik nelielu koda fragmentu :D) Edited by 2easy
Link to comment
Share on other sites

es "dzīvi atvieglotu" vēl vairāk ;)

if($_GET['lapa']) {
   $fails =  "_lpps_/".$_GET['lapa'].".php";
   if(file_exists($fails)) include $fails; 
   else echo "Notikusi kļūda!";
}
else include "_lpps_/jaunumi.php";

muljkjiibas...

absaluuts kontroles truukums, nekadas parbaudes uz ienakoshiem datiem .. inkludojam lapu ( tadus kuri potenciali var netbilst dotajiem kriterijiem )

--

Principa ir taa ka IF -> else uz nlielam konstrukcijam ( zarojumiem )[2-5]

Switch uz lieliem ... Ta tas ir bijis un ta tam buus buut

Link to comment
Share on other sites

es "dzīvi atvieglotu" vēl vairāk ;)

if($_GET['lapa']) {
   $fails =  "_lpps_/".$_GET['lapa'].".php";
   if(file_exists($fails)) include $fails; 
   else echo "Notikusi kļūda!";
}
else include "_lpps_/jaunumi.php";

 

Protams, šajā gadījumā nevajadzētu aizmirst nodrošīnāties pret to, ka $_GET['lapa'] var saturēt "../configs/passwordlist.txt" :)

 

Tam esmu izmantojis vienkāršu funkciju...

	function getSafeIncludePath($str){
	$invalidChars = array("/",".","\\","\"",";");
	return str_replace($invalidChars,"",trim($str));	
}

Link to comment
Share on other sites

ne switch, new if.

Pareizi ir vai nu ar file_exists, kā anonīms raksta (tik + klāt jāpieliek drošība), vai ar masīvu whitelistotajām lapām:

$a = array("news", "topics", "whatever");

Un tad pārbaudi vai GET arguments ir masīvā un tad inclūdo to. Abus var apvieno.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...