小编Osa*_*gie的帖子

is_date()发生故障

我有一个PHP方法,检查传入的参数是否是一个日期.这是它:

public function is_Date($str){ 
        if (is_numeric($str) ||  preg_match('^[0-9]^', $str)){  
            $stamp = strtotime($str);
            $month = date( 'm', $stamp ); 
            $day   = date( 'd', $stamp ); 
            $year  = date( 'Y', $stamp ); 
            return checkdate($month, $day, $year); 
        } 
        return false; 
}
Run Code Online (Sandbox Code Playgroud)

然后,我测试开它像这样:

$var = "100%";

if(is_Date($var)){
   echo $var.' '.'is a date'; 
} 

$var = "31/03/1970";

if(is_Date($var)){
   echo $var.' '.'is a date'; 
}

$var = "31/03/2005";

if(is_Date($var)){
   echo $var.' '.'is a date'; 
}

$var = "31/03/1985";

if(is_Date($var)){
   echo $var.' '.'is a date'; 
}
Run Code Online (Sandbox Code Playgroud)

请注意,每个ifs还有一个else语句,如: …

php regex date

7
推荐指数
2
解决办法
9947
查看次数

转换运算符(assignment operator =)没有响应

我一直在尝试测试对我的结构的赋值运算符=的调用:

struct array{

    void* data;

    template<typename S, typename T>
    array& operator= (const map<S, T>& that){ cout << "worked...";  return *this;}

   private:
     array();           //i don't need this
};
Run Code Online (Sandbox Code Playgroud)

我像这样试驾:

map<int, string> var;
array arr = var;
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

Error: conversion from
'std::map<int, string, std::less<int>, std::allocator<std::pair<const int, string> > >'
to non-scalar type 'array' requested*/ 
Run Code Online (Sandbox Code Playgroud)

问题:到底是什么问题?如何使这样的运算符超载?我的意思是 operator=,它应该将不同类型的对象转换为自己的类类型。

c++ operator-overloading copy-constructor

1
推荐指数
1
解决办法
128
查看次数

标签 统计

c++ ×1

copy-constructor ×1

date ×1

operator-overloading ×1

php ×1

regex ×1