PHP根据对象的值将对象强制转换为适当的数据类型


PHP cast object to appropriate datatype based on its value

我有一些来自XML文件的对象。我正在尝试将XML文件转换为SQL数据结构。到目前为止,我成功地检索了表和列,现在我需要找出每个列的数据类型。gettype()没有帮助,因为它总是返回object。转换是无效的,我试图转换到每个数据类型,看看它是否适合一个,但是,例如,如果我将5hi转换为整数,结果将是5。下面是关于XML文件的部分:

<device>
    <manufacturer>SIEMENS</manufacturer>
    <model>SOMATOM Definition</model>
    <serial>60301</serial>
    <version>syngo CT 2010A</version>
</device>

例如,manufacturerstring, serialinteger。如何根据对象的值将其转换为适当的数据类型?

is_numeric将为您提供检查值是否为数字的能力

如果您希望确保整数,则循环遍历每个字符并使用ctype_digit

您可能还希望使用正则表达式来识别更复杂的结构。

的例子:

if(is_numeric($value)) {
    $value = doubleval($value); //cast to double
}