Основная проблема логики PHP - PullRequest
1 голос
/ 12 мая 2010
$this->totplpremium is 2400
$this->minpremiumq is 800

Так почему же это вернулось бы в правду?!

if ($this->totplpremium < $this->minpremiumq){

Цифры определенно правильные, и я определенно использую символ «меньше». Я не могу решить это.

Ответы [ 4 ]

3 голосов
/ 12 мая 2010

Может быть, есть какая-то проблема с конвертацией. Попробуйте использовать

var_dump($this->totplpremium);
var_dump($this->minpremiumq);
if ($this->totplpremium < $this->minpremiumq){
  ...
}

чтобы убедиться, что типы данных в порядке

РЕДАКТИРОВАТЬ: Существуют инструменты, которые позволяют отлаживать код проще, чем с помощью отладочных выходных данных - http://xdebug.org/ (расширение для PHP, позволяющее выполнять отладку) и http://en.wikipedia.org/wiki/PHPEd (это коммерческий. не знаю, есть ли альтернатива.)

2 голосов
/ 12 мая 2010

Попробуйте обернуть 'цифры' intval:

if (intval($this->totplpremium) < intval($this->minpremiumq)){
//...
}

Если это работает, как ожидалось, тогда вам действительно нужно проверить, какие типы totplpremium и minpremiumq, используя gettype, например:

print(gettype($this->totplpremium));
print(gettype($this->minpremiumq));

С этой информацией вы сможете точно определить свою ошибку.

0 голосов
/ 12 мая 2010
<?php

$totplpremium="2400 ";
$minpremiumq="800";

var_dump(($totplpremium < $minpremiumq)?true:false);
var_dump(((int)$totplpremium < (int)$minpremiumq)?true:false);

?>

Полагаю, вам следует либо дважды проверить, откуда эти значения, ИЛИ убедиться, что они являются целыми числами.

Удачи в кодировании!

0 голосов
/ 12 мая 2010

Для сравнения в алфавитном порядке верно следующее утверждение:

"800" > "2400"

(поскольку 8 больше 2)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...