Передача значений в php-функцию через имя параметра [duplicate]

У меня есть другая перспектива ответить на это.

При работе на разных уровнях, например, в приложении MVC, контроллеру нужны службы для вызова бизнес-операций. В таких сценариях контейнер инжекции зависимостей может использоваться для инициализации служб, чтобы исключить исключение NullReferenceException. Это означает, что вам не нужно беспокоиться о проверке нулевого значения и просто вызвать службы с контроллера, как будто они всегда будут доступны (и инициализированы) как одиночный или прототип.

public class MyController
{
    private ServiceA serviceA;
    private ServiceB serviceB;

    public MyController(ServiceA serviceA, ServiceB serviceB)
    {
        this.serviceA = serviceA;
        this.serviceB = serviceB;
    }

    public void MyMethod()
    {
        // We don't need to check null because the dependency injection container 
        // injects it, provided you took care of bootstrapping it.
        var someObject = serviceA.DoThis();
    }
}
2
задан P K 22 March 2012 в 12:26
поделиться

4 ответа

Вы не можете просто пропустить аргумент в PHP.

Возможно, вы захотите рассмотреть трюк Perl и использовать связанный массив. Используйте array_merge для объединения параметров со значениями по умолчанию.

, например

function Test($parameters = null)
{
   $defaults = array('color' => 'red', 'otherparm' => 5);
   if ($parameters == null)
   {
      $parameters = $defaults;
   }
   else
   {
      $parameters = array_merge($defaults, $parameters);
   }
 }

Затем вызовите функцию, подобную этой

Test(array('otherparm' => 7));
5
ответ дан Ed Heal 25 August 2018 в 06:23
поделиться

Переопределите свою функцию как

    function test($b = true,$a = NULL){
 //logic here
}

И вы можете назвать ее как тест (5); избегая второго параметра.

0
ответ дан heyanshukla 25 August 2018 в 06:23
поделиться

Вы должны использовать формат, определенный моими стандартами функций PHP

test("",false);

Требование, которое вы работаете с библиотеками jquery ... для аргументов, передаваемых в его функциях. Но НЕ в PHP

-2
ответ дан OM The Eternity 25 August 2018 в 06:23
поделиться

Вы можете изменить положение аргументов или передать аргументы в виде массива для exmaple:

test($options);
0
ответ дан ventsislaf 25 August 2018 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: