Предположим, у меня есть следующая функция:
<?php
function MyFunction($color="green", $type="wood", $shape="circle")
{
echo "Its a ", $color , " " , $shape, ", made of " , $type , ".";
}
MyFunction(); // prints Its a green circle, made of wood.
?>
Все три параметра в функции являются необязательными.
Я знаю, что могу пропустить параметр, набрав null
в его слот для параметров. Например, чтобы изменить древесину на plasti c, мне нужно было бы набрать:
MyFunction(null,"plastic");
Как я могу вызвать ту же функцию и проанализировать, какую переменную я хочу изменить, не используя что-то необычное как массив?
Например, если мы возьмем Powershell, код будет выглядеть следующим образом:
function MyFunction()
{
[CmdletBinding()]
param (
[Parameter(Mandatory=$False)][string]color=green,
[Parameter(Mandatory=$False)][string]type=wood,
[Parameter(Mandatory=$False)][string]circle=circle
)
write-host "Its a" $color $shape", made out of" $type"."
}
В Powershell я могу вызвать функцию двумя способами.
MyFunction "red", "plastic", "square"
или
MyFunction -type "plastic"
Как мне достичь второго пути в php? Например, предположим, что следующий код действителен:
MyFunction ($type="plastic");