2014-02-12 49 views
1

我一直在网上做一些研究,似乎我的问题的答案是否定的,但我知道有些时候我可能会错过某些东西或错误地搜索某些东西。我知道像C++这样的语言,当声明一个变量时,它可以声明为int或string。有没有可能在PHP中强制执行此操作?你可以在PHP中强制类型转换吗?

例如:

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

将被验证和PHP不会导致错误,但:

<?php 
$var = 5; 
?> 

将会导致错误,因为它不是强制转换为类型字符串,整数,对象等...

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

感谢您提供任何帮助!

+1

这是不可能的 – zerkms

+0

您可以创建类,它将返回一个正确类型的流变变量值。没有使它成为可能的ini指令或任何其他机制。 –

+2

投射变数?是。键入提示?有时。强类型变量?编号为 –

回答

2

PHP是松散类型的,在声明变量时不需要声明变量类型。你不能用神奇的php.ini指令来改变这种行为。

“宽松打字”的好处是它具有灵活性。它允许您创建动态应用程序,而无需担心变量的类型 - PHP可以通过而不是实施变量类型。

但是,如果必须变量转换为特定的格式,只投它:

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

有功能做同样的,例如intval()strval()boolval() - 它们都执行相同的任务,但是当你想用它作为另一个函数的回调函数时,这个函数非常有用。

+0

谢谢为此,我知道宽松打字的好处,我个人不喜欢它们,但我认为这归结于一个偏好问题。我一直在寻找的主要方法是强制自己和我所计划的团队在没有人为干预的情况下坚持某些原则。 – kccoers

+1

@kccoers:那么,PHP是松散类型的,你不能改变它。如果您觉得PHP的功能违背了您的编码原则,那么千万不要使用它。 –

+1

这是我们正在研究的内容。我知道我们有更多的项目正在与PHP一起销售,但其他平台将在未来使用。 – kccoers

相关问题