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