wordpress表单提交经常会判断数字,偶尔也会限制用户输入整数或小数,或不允许负数。比如说会员站内转账,如果没有封闭负数的话,转账负数,会导致增加用户的资产,从而自己给自己充值。网上没有找到判断的写法。自己就测试研究。
同时发现一个问题,我用的xammp本地环境,使用 is_int() 无法或的数字的整/小数类型,不知道为什么,最后使用四舍五入的方式来判断
比如:
- $num=5;
- if(floor($num)==$num){$result=ture}else{$result=false};
- echo $result;
-
- $num=5.2;
- if(floor($num)==$num){$result=ture}else{$result=false};
- echo $result;
以此思路,写入function中,代码如下。
- function positive_integer($num,$positive=true,$int=true){
- if($num)
- {
- if(is_numeric($num)){
- if($positive && $num>0 && !$int){
- return '正数';
- }elseif($int && floor($num)==$num && !$positive){
- return '整数';
- }elseif($positive && $int && $num>0 && floor($num)==$num){
- return '正整数';
- }elseif($positive && $int && $num>0 && floor($num)!=$num){
- return '正小数';
- }elseif($positive && $num<0 && !$int){
- return '负数';
- }elseif($int && floor($num)!=$num && !$positive){
- return '小数';
- }elseif($positive && $int && $num<0 && floor($num)!=$num){
- return '负小数';
- }elseif($positive && $int && $num<0 && floor($num)==$num){
- return '负整数';
- }else{
- return '未知类型的数字';
- }
- }else{
- return '不是数字';
- }
- }elseif($num==='0'){
- return '等于0';
- }else{
- return '不存在';
- }
- }
使用方法:
- function positive_integer($num,$positive=true,$int=true);
-
上面的方法,必须写名值等于那个。
如果function,想只用true和false作为结果的话。做以下修改即可
- function positive_integer($num,$positive=true,$int=true){
-
- if($num)
- {
- if(is_numeric($num)){
- if($positive && $num>0 && !$int){
- return true;
- }elseif($int && floor($num)==$num && !$positive){
- return true;
- }elseif($positive && $int && $num>0 && floor($num)==$num){
- return true;
- }elseif($positive && $int && $num>0 && floor($num)!=$num){
- return true;
- }elseif($positive && $num<0 && !$int){
- return false;
- }elseif($int && floor($num)!=$num && !$positive){
- return false;
- }elseif($positive && $int && $num<0 && floor($num)!=$num){
- return false;
- }elseif($positive && $int && $num<0 && floor($num)==$num){
- return false;
- }else{
- return false;
- }
- }else{
- return false;
- }
- }elseif($num==='0'){
- return false;
- }else{
- return true;
- }
- }
使用方法:
- positive_integer($num);
-
- positive_integer($num,false);
-
- positive_integer($num,true,false);
-
- if(positive_integer($num,true,false) && !positive_integer($num,false)){
-
- }
来自
http://fox-studio.net/31740.html