canBeTreatedAsInt() публичный статический Метод

Checks whether a number can be treated like an int.
public static canBeTreatedAsInt ( string $value ) : boolean
$value string string representation of a certain value
Результат boolean
Пример #1
0
 /**
  * Fills in a value of a binding and truncates the
  * resulting string if necessary.
  *
  * @param mixed $value bound value
  *
  * @return string
  */
 protected function fillInValue($value)
 {
     if (is_null($value)) {
         $value = 'NULL';
     }
     $value = strval($value);
     if (strlen($value) > $this->strLen) {
         $value = substr($value, 0, $this->strLen) . '... ';
     }
     if (!\RedBeanPHP\QueryWriter\AQueryWriter::canBeTreatedAsInt($value) && $value !== 'NULL') {
         $value = '\'' . $value . '\'';
     }
     return $value;
 }
Пример #2
0
Файл: rb.php Проект: WTer/NJB
 /**
  * @see QueryWriter::scanType
  */
 public function scanType($value, $flagSpecial = FALSE)
 {
     $this->svalue = $value;
     if ($value === INF) {
         return self::C_DATATYPE_TEXT;
     }
     if ($flagSpecial && $value) {
         if (preg_match('/^\\d{4}\\-\\d\\d-\\d\\d$/', $value)) {
             return PostgreSQL::C_DATATYPE_SPECIAL_DATE;
         }
         if (preg_match('/^\\d{4}\\-\\d\\d-\\d\\d\\s\\d\\d:\\d\\d:\\d\\d(\\.\\d{1,6})?$/', $value)) {
             return PostgreSQL::C_DATATYPE_SPECIAL_DATETIME;
         }
         if (preg_match('/^\\([\\d\\.]+,[\\d\\.]+\\)$/', $value)) {
             return PostgreSQL::C_DATATYPE_SPECIAL_POINT;
         }
         if (preg_match('/^\\[\\([\\d\\.]+,[\\d\\.]+\\),\\([\\d\\.]+,[\\d\\.]+\\)\\]$/', $value)) {
             return PostgreSQL::C_DATATYPE_SPECIAL_LSEG;
         }
         if (preg_match('/^\\<\\([\\d\\.]+,[\\d\\.]+\\),[\\d\\.]+\\>$/', $value)) {
             return PostgreSQL::C_DATATYPE_SPECIAL_CIRCLE;
         }
         if (preg_match('/^\\((\\([\\d\\.]+,[\\d\\.]+\\),?)+\\)$/', $value)) {
             return PostgreSQL::C_DATATYPE_SPECIAL_POLYGON;
         }
         if (preg_match('/^\\-?(\\$|€|¥|£)[\\d,\\.]+$/', $value)) {
             return PostgreSQL::C_DATATYPE_SPECIAL_MONEY;
         }
     }
     if (is_float($value)) {
         return self::C_DATATYPE_DOUBLE;
     }
     if ($this->startsWithZeros($value)) {
         return self::C_DATATYPE_TEXT;
     }
     if ($value === FALSE || $value === TRUE || $value === NULL || is_numeric($value) && AQueryWriter::canBeTreatedAsInt($value) && $value < 2147483648.0 && $value > -2147483648.0) {
         return self::C_DATATYPE_INTEGER;
     } elseif (is_numeric($value)) {
         return self::C_DATATYPE_DOUBLE;
     } else {
         return self::C_DATATYPE_TEXT;
     }
 }
Пример #3
0
 /**
  * Binds parameters. This method binds parameters to a\PDOStatement for
  * Query Execution. This method binds parameters as NULL, INTEGER or STRING
  * and supports both named keys and question mark keys.
  *
  * @param \PDOStatement $statement \PDO Statement instance
  * @param  array        $bindings   values that need to get bound to the statement
  *
  * @return void
  */
 protected function bindParams($statement, $bindings)
 {
     foreach ($bindings as $key => &$value) {
         if (is_integer($key)) {
             if (is_null($value)) {
                 $statement->bindValue($key + 1, NULL, \PDO::PARAM_NULL);
             } elseif (!$this->flagUseStringOnlyBinding && AQueryWriter::canBeTreatedAsInt($value) && $value < 2147483648) {
                 $statement->bindParam($key + 1, $value, \PDO::PARAM_INT);
             } else {
                 $statement->bindParam($key + 1, $value, \PDO::PARAM_STR);
             }
         } else {
             if (is_null($value)) {
                 $statement->bindValue($key, NULL, \PDO::PARAM_NULL);
             } elseif (!$this->flagUseStringOnlyBinding && AQueryWriter::canBeTreatedAsInt($value) && $value < 2147483648) {
                 $statement->bindParam($key, $value, \PDO::PARAM_INT);
             } else {
                 $statement->bindParam($key, $value, \PDO::PARAM_STR);
             }
         }
     }
 }