php - PHP不会自动转换?
问题描述
我正在调用一个需要整数参数的函数。我从 http 请求中获取这个整数,所以它最初是一个字符串(即。"2" not 2
)。我基于整数转换文档的理解是,如果可能,如果需要,仅包含像这样的整数的字符串会自动转换为 int。在这种特殊情况下,我遇到了given non integer
错误。我已经确认进行显式(int)
转换确实可以按预期工作。
php中的自动转换是如何工作的?为什么,一般来说,会出现这样的情况,它不会自动投射一些会变得有效的东西?
解决方案
使用严格类型时,函数调用中没有自动转换。当你有:
public function test(int $var) {
//....
}
你不能传递任何类型,但整数。
$variable = "2";
test($variable) // not allowed
test((int) $variable) //allowed
推荐阅读
- javascript - Ajax 搜索第二次不起作用(ASP.NET MVC)
- python - ModuleNotFoundError:没有名为“tkfilebrowser”的模块
- mysql - 我有多个查询想要将所有查询结果合并到具有两列的同一个表中
- c# - HTTP 正常工作时 HTTP Post 触发错误
- c - 你能解释一下 2019 年会发生什么吗?
- python - 通过 Homebrew 安装时,IPython 不会读取 PYTHONPATH
- vba - 需要在同一个Access表中创建一条记录的副本,然后更新数据
- php - php数组在两个数组之间交换键值
- sql - 从 SQL Server 中具有公共 ID 的多条记录中选择数据
- php - 如何将输入显示为列表?