note 110795 added to function.is-int
| From: | mitislumen at gmail dot com | Date: | Sun, 09 Dec 2012 07:30:42 +0000 |
| Subject: | note 110795 added to function.is-int | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-192402@lists.php.net to get a copy of this message | ||
This tiny function will do both, cast and verify any string to int or float:
<?php
function str_cast($s) {
$v = 0 + $s;
return "$v"==$s ? $v : $s;
}
//Test:
var_dump(str_cast("5.3")); //float(5.3)
var_dump(str_cast("5")); //int(5)
var_dump(str_cast("0s")); //string(2) "0s"
var_dump(str_cast("0xFF")); //int(255)
var_dump(str_cast("3.5E6")); //float(3500000)
var_dump(str_cast("34875374653874538746385746538764538746538746538746538645123472974652937846529876"));
//string(80)
"34875374653874538746385746538764538746538746538746538645123472974652937846529876"
?>
You can use this trick to check for type:
<?php
function is_really_for_sure_float($s) {
$v = 0 + $s;
return ("$v"==$s && is_float($v)) ? true : false;
}
var_dump(is_really_for_sure_float('5')); //false
var_dump(is_really_for_sure_float('5.2')); //true
var_dump(is_really_for_sure_float('0xFF')); //false
var_dump(is_really_for_sure_float('3.5E2'));//true
?>
----
Server IP: 46.17.113.3
Probable Submitter: 77.254.79.167
----
Manual Page -- http://php.net/manual/en/function.is-int.php
Edit -- https://master.php.net/note/edit/110795
Del: integrated -- https://master.php.net/note/delete/110795/integrated
Del: useless -- https://master.php.net/note/delete/110795/useless
Del: bad code -- https://master.php.net/note/delete/110795/bad+code
Del: spam -- https://master.php.net/note/delete/110795/spam
Del: non-english -- https://master.php.net/note/delete/110795/non-english
Del: in docs -- https://master.php.net/note/delete/110795/in+docs
Del: other reasons-- https://master.php.net/note/delete/110795
Reject -- https://master.php.net/note/reject/110795
Search -- https://master.php.net/manage/user-notes.php