Я пытаюсь понять, если одна строка, $ a, делится на другую, $ b.
Все примеры, которые я могу найти, говорят мне, чтобы использовать модуль, например:
if(($a %$b) == 0) : echo "Is dividible" ; endif;
Однако, поскольку модуль возвращает остаток от вычисления, это не сработает, если $ b больше, чем $ a, потому что до сих пор нет остатка.
Как проверить делимость, где $ b иногда (но не всегда) больше, чем $ a?
почему бы вам не сделать это как функцию:
function isDivisible($smaller,$bigger){
//handle division by zero, and hmm.. let's cover negative numbers too
if($smaller<=0) return false;
if($smaller>$bigger) return false;
return !($bigger % $smaller);
}
Отрицание !
должен быть рабочий и элегантный способ справиться с этим.
Как насчет:
echo ( ($a < $b) && (($a % $b) == 0) ) ? "Is dividible" : "Is not divisable" ;
if($a==$b)
{echo "divisible a and b are equal";
}
else if($a>$b){
if(($a %$b) == 0) : echo "Is dividible" ; endif;
}
else{
echo "\$b is either large or equal to \$a";
}
Попробуйте это должно работать:
$a = 7;
$b = 14;
//echo ( ($a > $b) && ( ($a % $b) == 0) ) ? "is divisible":"no divisible";
echo ( ($a < $b) && (($b % $a) == 0) ) ? "Is dividible" : "Is not divisable" ;
Вы можете использовать троичный оператор в качестве примера, приведенного ниже
(($a%$b)==0)?echo "Is divisible": echo "not divisible";