Хорошо, я проверил то, что следует, и я просто сообщу вам, что я обнаружил:
echo ('-1' < 0) ? 'true' : 'false'; // will echo "true"
echo ('1' > 0) ? 'true' : 'false'; // will echo "true"
# Notice that '-1' and '1' are strings
Теперь давайте возьмем массив, поступающий из базы данных после фильтрации всех результатов, чтобы получить только строки с UID = 1
.
$this->a = array(
[0] => array(
'UID' => '1',
'PID' => '91',
'Amount' => '-1'
),
[1] => array(
'UID' => '1',
'PID' => '92',
'Amount' => '1'
),
[2] => array(
'UID' => '1',
'PID' => '93',
'Amount' => '1'
)
);
Теперь я хочу создать функцию posAmount($PID)
, которая возвращает true
, если 'Amount' > 0
или false
, если 'Amount' < 0
. (Обратите внимание: Amount = 0 - это то, что меня не волнует). Также я хотел бы написать как аналогичную функцию с именем negAmount($PID)
, которая возвращает точно противоположную первой. Теперь я хотел бы познакомить вас с моими двойными функциями:
public function posAmount($pid)
{
foreach ($this->a as $a)
{
if (count($this->a) == 0) { return false; }
return ($a['PID'] == $pid and $a['Amount'] > 0) ? true : false;
}
}
public function negAmount($pid)
{
foreach ($this->a as $a)
{
if (count($this->a) == 0) { return false; }
return ($a['PID'] == $pid and $a['Amount'] < 0) ? true : false;
}
}
Интересный факт заключается в том, что в отношении первого массива (который я проверил с помощью var_dump()
сохраняет свою сущность в рамках всего сценария):
$istance->negAmount(91); // Returns true, as expected
$istance->posAmount(92); // Returns false, as NOT expected.
# Why do God wants me to get mad?