Как сделать 2 равных утверждения при определенных условиях? - PullRequest
1 голос
/ 30 мая 2011

Мне нужно использовать разные модули в зависимости от значения переменной $ what.Есть 2 переменные;я и другие.Если $ what = me, я хочу, чтобы они увидели me.php, если $ what = others, я хочу, чтобы они увидели others.php.Я не знаю, как обновить фрагмент, который также примет $ what = другой рассматриваемый сценарий.

Как это сделать?

  $what = "me";

  if ( $q === $what ) {
require("me.php");
  } else {
  require("all.php");
  }

Ответы [ 6 ]

2 голосов
/ 30 мая 2011

Вам нужно elseif заявление.

 $what = "me";

 if ( $q === $what ) {
    require("me.php");
 } elseif ($what === "others") {
    require("all.php");
 } else {  // optional "catch all condition"
   die("Should not be here");
 }
2 голосов
/ 30 мая 2011

Вам нужно else if.


Тем не менее, улучшение в плане расширяемости будет заключаться в использовании массива в качестве карты:

$pages = array(
    'me' => 'me.php',
    'others' => 'others.php'
);

$page = 'all.php';

if(isset($pages[$q])) {
    $page = $pages[$q];
}

require($page);
1 голос
/ 30 мая 2011

$ what = "me";

if($what == 'me' ){
     require("me.php");
}
elseif($what == 'others'{
     require('others.php')
}
else{
    // There was no variable
}
0 голосов
/ 30 мая 2011

Вы можете использовать еще, если.

if ($a == "a") {
   // Do something
}
elseif ($a == "b") {
   // Do something else
}
else {
    // Do something
}

Вы должны использовать переключатель здесь.

switch($a) {
   case "a":
       // Do something
       break;
   case "b":
       // Do something
       break;
   default:
       // Do Something
       break;
}
0 голосов
/ 30 мая 2011

Есть несколько способов сделать это, самое простое из которых

if ($what=="me")
    require('me.php');
else
    require('all.php');

или, если в будущем могут быть добавлены другие значения, вы можете сделать оператор switch

switch ($what) {
    case 'me':
        require('me.php');
        break;
    case 'others':
        require('all.php');
        break;
    default:
        require('all.php');
        break;
}

В вышеупомянутом случае я предполагаю, что показ всей страницы по умолчанию, если что-то идет не так, является наиболее безопасным, если у вас нет чего-то вроде error.php

0 голосов
/ 30 мая 2011

Вы имеете в виду что-то подобное?

if ( $q === "me") {
    require("me.php");
} elseif ( $q === "others" ) {
    require( "others.php" );
} else {
    require("all.php");
}
...