什么是最好的方式来记录这个PHP代码?

问题描述:

你能告诉我这是什么功能做你会怎么文档使用评论以下功能:什么是最好的方式来记录这个PHP代码?

function tosql($value, $value_type, $is_delimiters = true, $use_null = true) 
    { 
     if (is_array($value) || strlen($value)) { 
      switch ($value_type) { 
       case NUMBER: 
       case FLOAT: 
        return preg_replace(array("/,/", "/[^0-9\.,\-]/"), array(".", ""), $value); 
        break; 
       case DATETIME: 
        if (!is_array($value) && is_int($value)) { $value = va_time($value); } 
        if (is_array($value)) { $value = va_date($this->DatetimeMask, $value); } 
        else { return "NULL"; } 
        break; 
       case INTEGER: 
        return intval($value); 
        break; 
       case DATE: 
        if (!is_array($value) && is_int($value)) { $value = va_time($value); } 
        if (is_array($value)) { $value = va_date($this->DateMask, $value); } 
        else { return "NULL"; } 
        break; 
       case TIME: 
        if (!is_array($value) && is_int($value)) { $value = va_time($value); } 
        if (is_array($value)) { $value = va_date($this->TimeMask, $value); } 
        else { return "NULL"; } 
        break; 
       case TIMESTAMP: 
        if (!is_array($value) && is_int($value)) { $value = va_time($value); } 
        if (is_array($value)) { $value = va_date($this->TimestampMask, $value); } 
        else { return "NULL"; } 
        break; 
       case NUMBERS_LIST: 
       case FLOATS_LIST: 
        $values = (is_array($value)) ? $value : explode(",", $value); 
        for ($v = 0; $v < sizeof($values); $v++) { 
         $value = $values[$v]; 
         $value = preg_replace(array("/,/", "/[^0-9\.,\-]/"), array(".", ""), $value); 
         if (!is_numeric($value)) { 
          $value = 0; 
         } 
         $values[$v] = $value; 
        } 
        return implode(",", $values); 
        break; 
       case INTEGERS_LIST: 
        $values = (is_array($value)) ? $value : explode(",", $value); 
        for ($v = 0; $v < sizeof($values); $v++) { 
         $values[$v] = intval($values[$v]); 
        } 
        return implode(",", $values); 
        break; 
       default: 
        $value = addslashes($value); 
        break; 
      } 
      if ($is_delimiters) { 
       $value = "'" . $value . "'"; 
      } 
     } elseif ($use_null) { 
      $value = "NULL"; 
     } else { 
      if ($value_type == INTEGER || $value_type == FLOAT || $value_type == NUMBER 
       || $value_type == NUMBERS_LIST || $value_type == FLOATS_LIST || $value_type == INTEGERS_LIST) { 
       $value = 0; 
      } elseif ($is_delimiters) { 
       $value = "''"; 
      } 
     } 
     return $value; 
    } 
+2

使用注释? – UnkwnTech 2009-07-14 11:23:08

那么给它一个快速过一遍这似乎是安全地转换给定值的函数转换为可以在SQL命令中使用的字符串。如果它不能转换它,那么它会给出一个合适的安全值'NULL',以免破坏代码。

usage: tosql(mydate, 'DATE') 

建议您剪切和粘贴类似上述的评论上面的代码...

它需要一个值,表示值的类型常数,把它变成可以接受的东西在SQL声明。它也支持某些类型的阵列(DATETIME,DATE,TIME,TIMESTAMPLIST类型)。当$is_delimiters为真时,它用单引号括住该项目(对于插入的值和需要它们的比较令牌)。如果指定了$use_null,则它会提供NULL令牌。

如何评论代码是一个意见,宗教问题,你有多关心下一个雅虎谁必须使用你的代码。

使用phpDocumentor的

/** 
* tosql 
* Converts a string to a valid sql string 
* @param string 
* @param string 
* @return string 
*/ 
function tosql($value, $value_type, $is_delimiters = true, $use_null = true) 
{ 
}