PHP - көптеген IF-ге басқа әрекетті жасайсыз ба?

EDIT: Very simple, figure it out. Just put an else{} without a } before and that will work for both ifs.

Ал мен осы кодты жаздым және ол жақсы жұмыс істейді

  if($_REQUEST['pag']){

       //Variável da página
        $pag = $_REQUEST['pag'];

       //Possíveis páginas
        if($pag == "registrar"){
        include "inc/register.php";
        }
        if ($pag == "recuperar"){
        include "inc/recover.php";
        }

}

Бірақ егер пайдаланушы ? Pag = ofksaofkoasdkfkopsd түрін енгізсе, не болады?

Бет болмайды, сондықтан, егер бұл орын алса, файлды қосқым келеді. Тізімді немесе қандай да бір нәрсе пайдаланбастан мұны жасаудың жолы бар ма?

0

12 жауаптар

мұны switch және бұл жақсы болған жағдайда жақсы болар еді

Коммутатор мәлімдемесі IF өрнектерінің бірдей өрнекпен ұқсас сериясына ұқсас. Көптеген жағдайларда бірдей айнымалыны (немесе өрнекті) көптеген мәндермен салыстырғыңыз келуі мүмкін және қандай мәнге тең болғанына қарай басқа код бөлігін орындаңыз. Бұл коммутаторға арналған нұсқа. ( Қолмен )

switch($_REQUEST['pag']){

case "registrar":
   include "inc/register.php";
   break;

case :"recuperar":
  include "inc/recover.php";
  break;

default:
  //default you want to include
  break;


}

Сізге кодының қиындығы туралы білесіз деп үміттенемін, ал сіздің коммутаторыңыздың жағдайы нашар/орташа жағдайда күрделілікке ие

3
қосылды
Бұл switch параметрін қолданып, оны жасаудың ең жақсы жолы
қосылды автор Novocaine, көзі
Мұндай үлкен код. Мен оны 1 түсініктеме арқылы түсінемін. Өңделген сұрақты қайта тексеріңіз.
қосылды автор John Balls, көзі

егер else сияқты көріңіз

$pag = $_REQUEST['pag'];

// Possíveis páginas
if($pag == "registrar"){
    include "inc/register.php";
}
elseif ($pag == "recuperar"){
    include "inc/recover.php";
}
else{
    include "inc/default.php"
}  

Немесе коммутатордың жағдайын қолдануға болады, мұнда сіз сияқты әдепкі опцияны таба аласыз

switch($pag)
{
   case "register":include "inc/register.php";
                   break;
   case "recuperar":include "inc/recover.php";
                   break;
   default : include "inc/default.php";
}
2
қосылды
Соңғы «case/default» үзілісіне қажеттілік жоқ, әсіресе әдепкі :)
қосылды автор Virus721, көзі
Thanku @ Virus721.I ғана тез берді ... Ұсыныс үшін алғыс
қосылды автор Gautam3164, көзі

if {} else {} немесе switch жағдайын қолданыңыз.

Бірақ if салынған болса дегенді пайдалануға болады.

At least give an eye on the docs - http://php.net/manual/en/control-structures.elseif.php

1
қосылды

Неге массивді пайдаланғыңыз келмейді? Бұл IMHO-ға барудың ең жақсы жолы болар еді. Беттерді қосу жеңілірек болады, сіз кем қайталанатын кодты аласыз. Кейінірек стадионда қиындықты кодтаудың орнына массивді конфигурациялық файлдан немесе DB-дан жүктеу маңызды болмас еді. Мен тек жеңілдіктерді көремін.

$pages = array( "registrar" => "inc/register.php",
                "recuperar" => "inc/recover.php" );

$requestedPage = $_REQUEST["pag"];

if(array_key_exists($requestedPage, $pages)){
    include $pages[$requestedPage];
}
else {
    include "inc/error404.php";
}
1
қосылды
+1 ленив ... массаны жақсы көремін ....
қосылды автор NullPoiиteя, көзі

Неге массивді пайдаланғыңыз келмейді? Бұл IMHO-ға барудың ең жақсы жолы болар еді. Беттерді қосу жеңілірек болады, сіз кем қайталанатын кодты аласыз. Кейінірек стадионда қиындықты кодтаудың орнына массивді конфигурациялық файлдан немесе DB-дан жүктеу маңызды болмас еді. Мен тек жеңілдіктерді көремін.

$pages = array( "registrar" => "inc/register.php",
                "recuperar" => "inc/recover.php" );

$requestedPage = $_REQUEST["pag"];

if(array_key_exists($requestedPage, $pages)){
    include $pages[$requestedPage];
}
else {
    include "inc/error404.php";
}
1
қосылды
+1 ленив ... массаны жақсы көремін ....
қосылды автор NullPoiиteя, көзі
        $pag = isset($_REQUEST['pag']) ? $_REQUEST['pag'] : null;

        switch($pag) {
        case 'registrar':
            require 'inc/register.php';
            break;        
        case 'recuperar':
            require "inc/recover.php";
            break;
        default:
           //Include your default page
        }

C ++ сияқты динамикалық емес тілде сіз оны пайдалануыңыз керек егер() elseif() else тұрақты емес мәндерді салыстыру үшін.

0
қосылды
Сіз өзіңіздің сұрағыңызды солай қалдыруыңыз керек. Сұраққа жауап бермегенде, жауап пайдасыз. Және ең тиімді емес шешім қабылдауға тырысыңыз ;-)
қосылды автор Virus721, көзі
Көптеген кодтар .. Менің түзетілген сұрағыма шешім бар.
қосылды автор John Balls, көзі
Мен кодты қолдануға тырыстым, өйткені түрлі нұсқаларды білгім келеді). Swith() жолында маған күтпеген мүмкіндік береді.
қосылды автор John Balls, көзі
swith ($ pag) жұмыс істейді.
қосылды автор John Balls, көзі

Сіз бұл кодты пайдалана аласыз

$pages = array("register", "recover");
if (in_array($_REQUEST["pag"], $pages)) {
include $_REQUEST["pag"].".php";
}
else{
include "default.php";
}
0
қосылды

Сіз бұл кодты пайдалана аласыз

$pages = array("register", "recover");
if (in_array($_REQUEST["pag"], $pages)) {
include $_REQUEST["pag"].".php";
}
else{
include "default.php";
}
0
қосылды

кейбір коммутаторды пайдаланыңыз.

switch ($_REQUEST['pag']) {
    case 'registrar':
        echo "some text or action";
        break;
    case 'xxx':
        echo "some text or action";
        break;
    case 'xxxx':
        echo "some text";
        break;
    default:
       echo "some text";
}
0
қосылды
if ($condition1) 
{
  //code
} 
elseif ($condition2)
{
  //code
}
elseif ($condition3)
{
  //code
}
...
else 
{
  //this is what happens when no other condition is true
}

қосқыш жақсы тәжірибе. @ user1752647 сұрағын тексеріңіз

0
қосылды

Try with the elseif and else

if($pag == "registrar"){
    include "inc/register.php";
}elseif($pag == "recuperar"){
    include "inc/recover.php";
}else{
    ... //include a file if the page doesn't exist
}

Немесе оны коммутатормен жасауға болады

switch($pag){
    case "registrar":
        include "inc/register.php";
        break;
    case "recuperar":
        include "inc/recover.php";
        break;
    default:
        ... //include a file if the page doesn't exist 
}

Сізге көмектесетініне сенемін.

0
қосылды

Try with the elseif and else

if($pag == "registrar"){
    include "inc/register.php";
}elseif($pag == "recuperar"){
    include "inc/recover.php";
}else{
    ... //include a file if the page doesn't exist
}

Немесе оны коммутатормен жасауға болады

switch($pag){
    case "registrar":
        include "inc/register.php";
        break;
    case "recuperar":
        include "inc/recover.php";
        break;
    default:
        ... //include a file if the page doesn't exist 
}

Сізге көмектесетініне сенемін.

0
қосылды