= 0; } elseif (is_string($value)) { return $value !== ''; } elseif (is_object($value)) { return method_exists($value, '__toString') && ((string)$value) !== ''; } return false; } /** * Преобразует переданне значение в объект типа \DateTime * @param string|int|DateTime $value Преобразуемое значение * @return DateTime|null Объект типа \DateTime или null, если при парсинг даты не удался * @throws Exception */ public static function castToDateTime($value) { if ($value instanceof DateTime) { return clone $value; } if (is_numeric($value)) { $date = new DateTime(); $date->setTimestamp((int)$value); } elseif (is_string($value) || (is_object($value) && method_exists($value, '__toString'))) { $date = date_create((string)$value); if ($date === false) { $date = null; } } else { $date = null; } return $date; } /** * Проверяет можно ли преобразовать переданное значение в буллево значение * @param mixed $value Проверяемое значение * @return bool True если значение качтится в bool, false если нет */ public static function canCastToBoolean($value) { if (is_numeric($value) || is_bool($value)) { return true; } return false; } }