你能用PHP强制类型转换吗?

时间:2014-02-12 01:06:41

标签: php php-ini

我一直在网上进行一些研究,似乎我的问题的答案是否定的,但我发现有时候我可能会遗漏某些东西或者搜索错误的东西。我知道在像C ++这样的语言中,当声明变量时,它可以声明为int或string。是否可以在PHP中强制执行此操作?

例如:

<?php
(int)$var = 5;
?>

将被验证并且不会导致PHP出错,但是:

<?php
$var = 5;
?>

会导致错误,因为它没有被转换为类型字符串,int,object等...

我知道PHP是松散类型的,所以这可能不是一个选项,但是我想以这种方式使用它我确保通过让其他人确切地知道代码发生了什么来适当地清理数据并提高可读性。我希望有一种方法可以在php.ini文件中强制执行此操作,或者将其加载到我的程序将始终执行的脚本中。

感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:2)

PHP是松散类型的,并且在声明变量时不要求您声明变量类型。您无法使用魔术php.ini指令更改该行为。

“松散打字”的好处是它允许灵活性。它允许您创建动态应用程序而不必担心变量的类型 - PHP通过而不是强制执行变量类型使其成为可能。

但是,如果必须将变量转换为特定格式,只需将其转换为:

$int   = (int) $foo;
$str   = (string) $foo;
$bool  = (bool) $foo;
$float = (float) $foo;
...

有相同的功能,例如intval()strval()boolval() - 所有这些都执行相同的任务,但是当您想将它用作对另一个函数的回调时,函数非常有用。