L!MP, ага. распоковщики. еще используються в качестве аргументов функций, если не известно сколько их будет передаваться.
пример:
def some(*args, **kwargs):
print args # выведет список(масив)
print kwargs # выведет хеш(именовный массив)
some(1,2,3)
>[1,2,3]
>{}
some(x=4)
>[]
>{'x': 4}
some('r', 3, '%', x=4, y='er')
>['r', '3', '%']
>{'x': 4, 'y': 'er'}
надеюсь понятно написал
func_get_args()
function foo()
{
$numargs = func_num_args();
echo "Number of arguments: $numargs<br />\n";
if ($numargs >= 2) {
echo "Second argument is: " . func_get_arg(1) . "<br />\n";
}
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
}
}
foo(1, 2, 3);
flaky, товарищ выше ответил. Но это не совсем то потому что в РНР нет именованных аргументов.
func_gеt_аrgs() просто возвращает массив (с числовыми ключами) со всеми аргументами переданными функции.
Иными словами: есть только *аrgs, что логично.
L!MP, ага, ясно. значит что я предложил реализовать невозможно.
В реалиях РНР, самый годный вариант, это whеrе с тремя аргументами (поле, сравнение, значение).
Ну а потом можно делать так:
public function where($column, $comparison, $value) {
// ...
}
public function whereGte($column, $value) {
return $this->where($column, '>=', $value);
}
Ну а если не бояться "магии", то можно сделать что и такое:
User::whereGenderAndAgeGte('male', 18)->all();
// SELECT * FROM users WHERE gender = 'male' AND age >= '18';
... будит работать
L!MP, не, лудче указывать явно. по дзену питона
flaky, ну, это я к тому, что у РНР свои средства в достижении целей и они, не такие уж и скудные.
L!MP, ну ты согласишся, что в плане ООП питон богаче и гибче. да и в плане функционально програмираморования тоже
хотя и он не без боков
flaky, конечно соглашусь, но мне не нравится питон и толу я в нём, для себя, не вижу.