VIDTAKER.COM

Q&A

何が最良の方法は、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;
    }



3 Replies

1)

まあ一度の上には、関数を安全にSQLコマンドで使用できる文字列に指定された値を変換することが表示されます簡単にそれを与える。それはそれは適切な安全な値は、'NULL'を、コードを破るようのないように変換できない場合。

使い方は:tosql('mydate日付')

お勧め使用すると、コメントに上記のコードで上記のようなペーストの何かカット...


2)

これは、値と時間定数値の型を表す、何かに認めて、SQLステートメントで、それをになります。それだけでなく、いくつかの型(DATETIME型、日付、時刻、タイムスタンプ、とLISTの種類時$ is_delimiters配列をサポートしてtrueの場合、それは(単一引用符で項目を囲むための値とそれらを必要と比較トークン)を挿入します。場合$ use_nullは指定された場合はNULLトークンを提供しています。

どのようにコードをコメントにコードを物質のだという意見、宗教、どのくらいあなたのことをしたために使用気にヤフーの横について。


3)

使用phpDocumentorの

is_delimiters = trueの場合、$ use_null = trueを$ /関数tosql($値を文字列の*、$ @戻り値のvalue_typeが、パラメータの文字列* / ** * tosql *の文字列に変換を有効なSQL文字列* @パラメータの文字列* @)()