使用参数的预定义值创建php函数

时间:2016-04-13 09:48:17

标签: php

假设我有以下方法:

public function chooseCar($car)
{
    return 'You chose this car: ' . $car;
}

我需要为$ car参数中可以传递给chooseCar的内容设置特定值,例如让开发人员在“梅赛德斯”,“宝马”和“福特”之间选择,是否可以在PHP中使用?

6 个答案:

答案 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()函数作为其他答案中的描述。