使用下面的代码,$ quantity被假定为一个整数,但我没有对它进行任何检查以要求它。
public function addProduct($product, $quantity) {
下面的代码将要求它是一个整数,但如果$quantity = '1';
它将失败,因为它是一个字符串。我是否有可能强制$quantity
在此函数中以整数形式出现,或者我必须做$object->addProduct($product, (int) $quantity);
吗?
public function addProduct($product, int $quantity) {
最后,我是否可以将$ product标记为字符串或整数,但如果它传递了一个对象,它将会中断(不写is_object()
项检查)
答案 0 :(得分:2)
类型提示不适用于基本类型。在这种情况下,你唯一的解决方案是在你的param上使用intval()或is_int():
public function addProduct($product, $quantity) {
$quantity = intval($quantity);
}
答案 1 :(得分:1)
您必须将参数的类型指定为Object或Array,即它不能同时为 - > http://php.net/manual/en/language.oop5.typehinting.php
答案 2 :(得分:1)
要确保param以整数形式输入,只需在方法的最开头添加此行:
public function addProduct($product, $quantity) {
$quantity = intval( $quantity );
// your code here
}
答案 3 :(得分:0)
您可以在方法本身中转换值
$quantity = (int) $quantity;
答案 4 :(得分:0)
您将类型转换为整数。您应该始终为所有用户输入的值转换为适当的数据类型。
$quantity = (int) $quantity;
$quantity
现在是一个整数