php7之前尚不完全支持type hint,所以,如果你期望给你传入一个integer,并把它当做integer处理(比如进行<,>的比较),然而实际传入了一个string,这样这个string就会被静默地转换为integer并不做任何警告(也许就会产生bug)。然而如果在每个函数内手动审查type,不免非常臃肿,而且我看到这样做的也并不多。请问大家怎么看这个问题呢?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP提供有变量处理函数(如
is_int/is_float/is_string/is_array/is_object/instanceof)来检查变量类型.对于程序提示用户输入错误的场景,如提交表单,用这些函数很有必要,也很方便.而且判断一下类型,也不会显得"非常"臃肿:
另外不是所有地方都需要进行变量类型检查,比如
post.php?id=1024:上面涉及到了等于/小于/大于的逻辑判断,
$_GET['id']这个参数不需要用户输入,完全是程序的输出行为,这时完全不需要因为用户有可能故意把参数修改成字符串而进行一次类型检查.程序只需把参数视为int型,预处理查询时把参数绑定为int型,避免SQL注入就好.如果是自己的项目自己写函数自己用,这种情况下可以不用每个地方都做检查,而涉及到团队协作或者提供类库给其他人用的情况,就需要做好类型检查,提供完整的文档了。其实有了准确的文档或者函数注释就足够了。