<body> <form action="" method="get"> <label for="input">Input string: </label> <input type="text" name="input" id="input"/> <input type="submit" value="Submit"/> </form> </body> </html> <?php function sumDigits($digit) { if (!is_numeric($digit)) { return "I can not sum that"; } else { $sum = 0; $digitToString = (string) $digit; for ($i = 0; $i < strlen($digitToString); $i++) { $sum += (int) $digitToString[$i]; } return $sum; } } if (isset($_GET['input'])) { $inputs = $_GET['input']; $input = explode(", ", $inputs); echo "<table border='1'>"; for ($i = 0; $i < count($input); $i++) { echo "<tr><td> {$input[$i]} </td><td>" . sumDigits($input[$i]) . "</td></tr>"; } echo "</table>"; }
</form> </body> </html> <?php if (isset($_GET['submit'])) { ?> <table> <tbody> <?php $input = explode(', ', $_GET['input']); foreach ($input as $var) { echo '<tr>'; echo "<td>{$var}</td>"; echo '<td>' . sumDigits($var) . '</td>'; } ?> </tbody> </table> <?php } function sumDigits($num) { if (!ctype_digit($num)) { return 'I cannot sum that'; } $sum = 0; while ($num > 0) {
/** * Recursive function which returns the sum of the digits of a given integer. * * @param int $number * @return int */ function sumDigits($number) { if ($number == 0) { return 0; } //echo "return ($number % 10) + sumDigits($number / 10)<br>"; //debug info return $number % 10 + sumDigits($number / 10); }
<?php function sumDigits($num, $base = 10) { $s = base_convert($num, 10, $base); foreach (str_split($s) as $c) { $result += intval($c, $base); } return $result; } echo sumDigits(1), "\n"; echo sumDigits(12345), "\n"; echo sumDigits(123045), "\n"; echo sumDigits(0xfe, 16), "\n"; echo sumDigits(0xf0e, 16), "\n";