2012-02-05 5 views
-2

Это действительно беспокоит меня. У меня проблемы с очень простой логикой. Переменная должна быть между 5 и 35. Если это я хочу распечатать пропуск, если не распечатать сбой. Я не могу, для жизни меня, заставить это работать. Его так просто ...PHP простая логика оператора

if($turboPressure > 5 && $turboPressure < 35) 
    {print "pass";} 
    else 
    {print "fail";} 

Вот мой последняя попытка ... Я попытался как 4-х различных условиях, и никто не работал ... Пожалуйста, помогите.

Если кто-то хотел бы посмотреть на него, я думаю, вы можете просмотреть его на ... http://www.deltacst.net/php06/Lab4/Lab4.html

+0

Там нет ничего плохого с кодом образца. – nickb

+1

Что происходит и какие ценности вы пытаетесь использовать? –

+0

Ваши условные штрафы (если ваше определение «между» не ограничивается границами). Если это не работает, '$ turboPressure' - это не то, что вы думаете. Если '5' и' 35' должны быть действительными («beetween» == включая границы), вам нужно использовать '> =' и '<='. –

ответ

3

Ваш код работает отлично. Вот доказательство:

foreach(range(0, 40) as $turboPressure) 
{ 
    echo $turboPressure . ' '; 
    echo (($turboPressure > 5 && $turboPressure < 35) ? 'pass' : 'fail'); 
    echo "\n"; 
} 

Это число от 0 до 40, печать проходит либо с ошибкой, либо с тем же условием, о котором вы писали.

Вы можете сделать:

$turboPressure = intval($turboPressure); 

Это гарантирует, что вы имеете дело с целыми числами вместо строк. Если вы используете строки, ваше сравнение не удастся.

Единственная сложная часть моего образца является ternary operator, который принимает это:

if(condition) 
    $var = 'something1'; 
else 
    $var = 'something2'; 

И превращает его в

$var = (condition) ? 'something1' : 'something2'; 

Watch it work.

Edit:

На основании вашего образца кода, вы должны получить $turboPressure так:

$turboPressure = intval($_POST['turboPressure']); 
+0

Форма в исходном html-файле (который перенаправлен в указанный файл php на submit) имеет и тип ввода числа ... поэтому я уверен, что это целое значение, а не строка. –

+0

@JoshI - Не обязательно. Вы должны использовать последнее редактирование для получения правильного значения из данных POST. – nickb

+0

Я думаю, это сработало. Позвольте мне закончить здесь ... –

0

Это работает. Или на самом деле должен работать. Возможно, вы ошиблись в части кода, которую вы нам не показали. Пожалуйста, дайте нам весь код (или, по крайней мере, значительную часть). Если это журнал, попробуйте использовать pastebin.com.

Кроме того, использование эха вместо печати является хорошей практикой.

ВАЖНО: $turboPressure не становится автоматически $_POST["turboPressure"], вы должны добавить строку $turboPressure=$_POST["turboPressure"];

+0

Я просто проверил декларацию переменных, и это правильно написано. –

+0

Во всяком случае, эта часть кода НЕ помогает, поскольку код работает сам по себе. – axiomer

0

Может быть, вы должны отдать свой $ turboPressure в Int типа первым.

В любом случае, вы должны проверить фактическое значение $ turboPressure. Не орфография. Не все непрямое вопрос, но это само значение, лучше используя var_dump()

0

Этот конкретный фрагмент кода работает отлично ...я получил файл журнала ошибок с сервера (http://www.deltacst.net/php06/Lab4/error_log), который показывает ошибки, которые вы имеете в вашем коде PHP

на линии 14 (3 ошибки) по линии 23 (2 ошибки) на лжи 31 (1 ошибка)

проверить эти строки в файле PHP или реструктурировать свой вопрос все весь код вашего файла PHP это может помочь вам

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