Nasıl bir dize bir tamsayı olduğunu kontrol edin, ama bir çift, vb. değil mi?
PHP bir tamsayı bir dize dönüştürmek olacak intval()
bir işlevi vardır. Ancak dize eğer yanlış ise kullanıcı için yararlı bir hata iletisi verebilirim, böylece önceden bir tamsayı olduğunu kontrol etmek istiyorum. PHP is_int()
ama "2"
gibi döndüren bir dize için yanlış vardır.
PHP is_numeric()
işlevi vardır, ama eğer sayı çift ise true döndürür. Bir çift için yanlış, ama bir int döndürür true bir şey istiyorum.
örneğin:
my_is_int("2") == TRUE
my_is_int("2.1") == FALSE
CEVAP
Hakkında kullanma ctype_digit
?
Manuel:
<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
if (ctype_digit($testcase)) {
echo "The string $testcase consists of all digits.\n";
} else {
echo "The string $testcase does not consist of all digits.\n";
}
}
?>
Yukarıdaki örneğin çıktısı:
The string 1820.20 does not consist of all digits. The string 10002 consists of all digits. The string wsl!12 does not consist of all digits.
Bu sadece eğer giriş her zaman bir dize ise çalışır:
$numeric_string = '42';
$integer = 42;
ctype_digit($numeric_string); // true
ctype_digit($integer); // false
Eğer giriş tipi olabilir eğer int
is_int
ctype_digit
birleştirin.
Eğer negatif sayılar değer veriyorsan, o zaman -
, ve eğer öyleyse, önceki bir çağrı için giriş kontrol etmeniz gerekir giriş dizesi substr
ctype_digit
. Böyle bir şey yapardı:
function my_is_int($input) {
if ($input[0] == '-') {
return ctype_digit(substr($input, 1));
}
return ctype_digit($input);
}
Nasıl bir dize bir sayı (yüzen) olup o...
Nasıl bir Dize Java sayısal bir tip ol...
Nasıl bir tamsayı çift veya tek olup o...
Nasıl bir dize null veya boş olup olma...
Nasıl C <dize> belirli bir dize ...