Проверка на делимость в PHP

Тема в разделе "Как сделать...", создана пользователем mirek, 19 ноя 2011.

  1. mirek

    mirek Постоялец

    Регистр.:
    11 июн 2011
    Сообщения:
    149
    Симпатии:
    4
    Существует ли в PHP ф-ция, которая бы осуществляла проверку на делимость ?

    Может есть готовое решение ?
     
  2. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    624
    Симпатии:
    1.379
    Чего???? Об чем речь?
    Если о целочисленном делении, то проверить можно так 2%3
     
  3. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    просто результат деления проверить на то является ли он целым числом
    PHP:
    <?php
    $strings 
    = array('1820.20''10002''wsl!12');
    foreach (
    $strings as $testcase) {
        if (
    ctype_digit($testcase)) {
            echo 
    "Строка $testcase состоит только из цифр.\n";
        } else {
            echo 
    "Строка $testcase не состоит только из цифр.\n";
        }
    }
    ?>
    http://php.su/functions/?ctype-digit
     
  4. artcosmic

    artcosmic

    Регистр.:
    16 сен 2008
    Сообщения:
    198
    Симпатии:
    161
    Это можно сделать иначе (лично мне - больше нравится :):(
    PHP:
    if(!filter_var($valueFILTER_VALIDATE_INT)) {
        die(
    'Value is not integer');
    }
    А что касается "проверки на делимость" - это действительно операнд %
    PHP:
    for($i 0$i 100$i++) {
        if(
    $i 10 == 0) {
            echo 
    $i;
        }
    }
     
  5. mirek

    mirek Постоялец

    Регистр.:
    11 июн 2011
    Сообщения:
    149
    Симпатии:
    4
    Спасибо. Есть еще ф-ция gmp_divexact

    Но меня вполне устроил %
     
  6. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
    Можно еще так:
    PHP:
    c10/8;
    dintval(10/8)
    if (
    c==d){
        echo 
    'делится';
    }
    else {
        echo 
    'не делится';
    }
     
  7. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    не понимаю саму суть %
    что значит делимости ?? что угодно можно поделить на что угодно кроме нуля :D
    php код
    PHP:
    <?php
    for($i 0$i 100$i++) {
        if(
    $i 3.14 == 0) {
            echo 
    $i."\r\n";
        }

    sleep(600);
    ?>
    выдаст
    Код:
    0
    3
    6
    9
    12
    15
    18
    21
    24
    27
    30
    33
    36
    39
    42
    45
    48
    51
    54
    57
    60
    63
    66
    69
    72
    75
    78
    81
    84
    87
    90
    93
    96
    99
    хотя делится любое число и ни одно из них не делится без остатка - так что же тогда за результат мы получили ?
     
  8. Soul :)

    Soul :) Постоялец

    Регистр.:
    22 мар 2007
    Сообщения:
    86
    Симпатии:
    9
    % - остаток от деления для целых чисел. Если один из операндов нецелый, то его, по всей видимости, округляют.
     
  9. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    если и округляют то по какому то не понятному принципу
    PHP:
    <?php 
    for($i 0$i 50$i++) { 
        if(
    $i 3.94 == 0) { 
            echo 
    $i."\r\n"
        } 
    }  
    sleep(600); 
    ?>
    выдаст
    Код:
    0
    3
    6
    9
    12
    15
    18
    21
    24
    27
    30
    33
    36
    39
    42
    45
    48
     
  10. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    % - Деление по модулю, результат - Целочисленный остаток от деления
    источник
     
    o_nix нравится это.