php-vn-lib/vn/lib/type.php

65 lines
1.1 KiB
PHP
Executable File

<?php
const TYPE_NULL = 1;
const TYPE_BOOLEAN = 2;
const TYPE_INTEGER = 3;
const TYPE_DOUBLE = 4;
const TYPE_STRING = 5;
const TYPE_OBJECT = 6;
const TYPE_TIME = 7;
const TYPE_DATE = 8;
const TYPE_DATE_TIME = 9;
class Time extends DateTime {}
class Date extends DateTime {}
function get_type ($value)
{
if (is_bool ($value))
return TYPE_BOOLEAN;
elseif (is_int ($value))
return TYPE_INTEGER;
elseif (is_float ($value))
return TYPE_DOUBLE;
elseif (is_string ($value))
return TYPE_STRING;
elseif (is_object ($value))
{
if ($value instanceof Time)
return TYPE_TIME;
elseif ($value instanceof Date)
return TYPE_DATE;
elseif ($value instanceof DateTime)
return TYPE_DATE_TIME;
else
return TYPE_OBJECT;
}
return TYPE_NULL;
}
function set_type (& $value, $type)
{
switch ($type)
{
case TYPE_INTEGER:
settype ($value, 'integer');
break;
case TYPE_DOUBLE:
settype ($value, 'float');
break;
case TYPE_STRING:
settype ($value, 'string');
break;
case TYPE_BOOLEAN:
settype ($value, 'boolean');
break;
case TYPE_NULL:
$value = NULL;
break;
}
}
?>