65 lines
1.1 KiB
PHP
Executable File
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;
|
|
}
|
|
}
|
|
|
|
?>
|