2013-11-18 11 views
0

Я застрял на некотором php-кодировании, которое казалось изначально легким для достижения. Вот что я хотел бы сделать:Если ... сделайте это, если заявление?

<?php 
$amountOfDigits = 1; 
$numbers = range(1,3); 
shuffle($numbers); 

for($i = 0;$i < $amountOfDigits;$i++) 
$digits .= $numbers[$i]; 

while (have_posts()) : the_post(); 
static $count = 0; 

if ($digits == '1') { 
//Do this if statement 
if ($count == "2") } 
elseif ($digits == '2') { 
//Do this if statement 
if ($count == "2" || $count == "3") } 
elseif ($digits == '3') { 
//Do this if statement 
if ($count == "2" || $count == "3" || $count == "4") } 

{ //here the rest of the code 

>

Так в зависимости от $ цифр переменной, если заявление отформатирован для использования на линии выше //the rest of the code

Как поставить это в PHP правильно?

Спасибо. Robbert

+2

Опишите, что она должна делать. – Shomz

+0

Итак, что случилось? Это, если последовательность совершенно законна. – sashkello

+0

Во-первых, не используйте ключевое слово static вне класса. Затем, на самом деле, я понятия не имею, что вы пытаетесь сделать с этим. – JAL

ответ

3

Если я правильно понял ваш вопрос правильно, вы хотите что-то вроде этого:

if ($digits == '1') 
    $mycond = ($count == "2"); 
elseif ($digits == '2') 
    $mycond = ($count == "2" || $count == "3") 
elseif ($digits == '3') 
    $mycond = ($count == "2" || $count == "3" || $count == "4") 

, то вы можете дополнительно использовать

if($mycond){ 
    // blahblahblah 
} 
+0

Спасибо. У меня уже был этот код, но сначала он не работал. Я думал, что это было только из-за самого кода, но я должен был сделать что-то еще в скрипте. Все работает сейчас, спасибо! – RobbertT

3

Ну, если вы хотите один и тот же блок выполнения на каждом отдельном случае, для этого есть очень простое решение.
Вы должны просто использовать функцию, которая проверяет статус «счет» в зависимости от «цифр».

<?php 
    function checkCountAgainstDigits($count, $digits){ 
     switch($digits){ 
      case 1: 
       return $count === 1; 
      case 2: 
       return $count === 2 || $count === 3; 
      case 3: 
       return $count === 2 || $count === 3 || $count === 4; 
      default: 
       // The default case "ELSE" 
       return FALSE; 
     } 
    } 

    if(checkCountAgainstDigits($count, $digits)){ 
     // do 
    } 
?> 

Если вы хотите другое, ваше решение будет правильным.

+0

Спасибо большое, что открыло мне глаза. Хороший способ добиться этого! – RobbertT

Смежные вопросы