假设我有以下方法:
public function chooseCar($car)
{
return 'You chose this car: ' . $car;
}
我需要为$ car参数中可以传递给chooseCar的内容设置特定值,例如让开发人员在“梅赛德斯”,“宝马”和“福特”之间选择,是否可以在PHP中使用?
答案 0 :(得分:1)
您可以尝试以下代码。
public function chooseCar($car)
{
$predefined_vals = array( 'Mercedes', 'BMW', 'Ford');
if(in_array($car,$predefined_vals)){
return 'You chose this car: ' . $car;
}else{
return "undefined values chosen"
}
}
答案 1 :(得分:1)
我有一种方法。
在函数本身中,创建一个数组。
并检查参数$car
是否为in_array()
public function chooseCar($car = '') {
$allowedCars = array('Mercedes', 'BMW', 'Ford');
if (! in_array($car, $allowedCars)) {
return FALSE;
}
return 'You chose this car: ' . $car;
}
答案 2 :(得分:1)
您可以检查参数是否为“可接受的值”,如下所示:
var $acceptableCars = [ 'Mercedes', 'BMW', 'Ford'];
function chooseCar($car) {
if (in_array($car, $acceptableCars)) {
return 'You chose this car: ' . $car;
}
throw new Exception('Not a valid car');
}
答案 3 :(得分:0)
有些内容可以帮助您获得可用汽车的固定列表:
<?php
class Cars
{
private $availableCars = ['Merc', 'Ford'];
public function chooseCar($car)
{
if (in_array($car, $this->availableCars)) {
return 'You chose this car: ' . $car;
}
throw new \Exception('Invalid car chosen!');
}
}
答案 4 :(得分:0)
正如有人建议的那样,使用枚举,这样你的程序设计会更好,你确定你的功能是用汽车正确调用的,而不是另一件事:
class CarBrand extends SplEnum {
// No value, then undefined
const __default = 1;
const MERCEDES = 1;
const AUDI = 2;
}
function chooseCar(CarBrand $car) {
if (CarBrand::MERCEDES == $car) {
echo "Mercedes.\n";
} elseif (CarBrand::AUDI == $car) {
echo "Audi.\n";
}
}
$car = new CarBrand(CarBrand::MERCEDES);
chooseCar($car);
答案 5 :(得分:-1)
如果您知道汽车的类型,请通过以下代码
public function chooseCar($car)
{
switch($car)
{
case 'BMW':
return 'You chose this car: ' . $car;
break;
case 'Ford':
return 'You chose this car: ' . $car;
break;
default:
return 'Soory, Your car not exist in the list';
}
}
您还可以使用php in_array()或array_search()函数作为其他答案中的描述。