请问这是一个判断是否为整数的程序吗?
是的第7行为什么要判断是否为0,第10行为什么又要使用substr函数?
有什么用意?
去掉前导的0
如 000123 变成 123这个函数有画蛇添足的感觉
php已提供 is_int 函数
非要自己写的话,也只需
function isint($str){
return $str == (int)$str;
}
是的第7行为什么要判断是否为0,第10行为什么又要使用substr函数?
有什么用意?
去掉前导的0
如 000123 变成 123这个函数有画蛇添足的感觉
php已提供 is_int 函数
非要自己写的话,也只需
function isint($str){
return $str == (int)$str;
}
解决方案 »
- PHP smarty的一个问题
- 在html中怎样插入if语句?
- 使用正则表达时,怎么处理掉字符串中正则表达的符号
- 如何解决Fatal Error: ezSQL_mysql requires mySQL Lib to be compiled and or linked in to the PHP engine
- [求助]大龄新手请前辈们推荐几本参考书
- 在同一个类中检查函数是否存在用什么方法啊?在线等
- php sphinx随机排序不生效的奇怪问题
- 文件名带日期,怎么查询最后一次的文件名
- 用zend加密过的php真的不能反编译吗?
- php如何向html传递数据
- 论坛程序用HTML在线编辑器的话,怎么过滤用户的输入呢?
- 关于mkdir这个函数的问题
13 if($str==(string)$int) return true请问这2行什么作用?
第12行把$str变为整数类型后,为什么又在第13行把它强制变为字符类型.
直接进行比较不可以的吗?
$int=(int)$str; // $str=>3
(string)$int // $int=>'3'
$str==(string)$int // 为false 如果直接比较
$str==(int)$str // 会自动把$str转换为int型比较 ,结果为true
可以试试 echo '3x'==3, 结果为1唠叨给的函数是不对的, 用'3x'就可以试出来;
function a($ymd,$sep='-'){
$parts = explode($sep,$ymd); //切开字符串,返回到数组变量中
$year = $parts[0];
$month = $parts[1];
$day = $parts[2]; if(isint($year) && isint($month) && isint($day)){
if(checkdate($month,$day,$year))
{
return true;
}
else return false;
}
else return false;
} function isint($str){
$str = (string)$str; $pos = 0;
$len = strlen($str);
for($i=0;$i<$len;$i++){
if($str[$i]=='0') $pos++;
else break;
}
$str = substr($str,$pos);
$int = (int)$str;
if($str==(string)$int) return true;
else return false;
} //测试
$dates = array(
'002000-4-11' => '-',
'1900-2-1' => '-',
'2001-03-01' => '-',
'abaf' => '-',
'20.03.05' => '.' ,
"2000/18/12" => "/" ,
"2000 12 12" => " "
);
while(list($date,$sep)=each($dates)){
if(a($date,$sep)) echo $date.' 是合法日期<br>';
else echo $date.' 不是合法日期<br>';
}
//
?>