2016-04-05 20 views
-1

3 parametresiyle işlev yapmak istiyorum, ilk parametre $field, ikinci parametre $condition ve son parametre $value'dur. Böyle yapmak neyi fonksiyonu:PHP işlev argümanı

->where('name', 'andi')

ve kondisyon varsayılan (=) olacaktır:

function where($field, $condition = ' = ', $value); 

ben bu kod ile fonksiyon çalıştırmak çağrı istiyorum.

Bu, son parametrede $ koşulu durumdayken kolaydır, ancak ortadaki $ koşulu istiyorum.

Bu işlevi yalnızca 2 parametresiyle çağırırsam, ikinci parametrenin nasıl bilineceği $ value değerindedir? herhangi bir fikir?

şimdiden teşekkür ederiz.

func_num_args()

+1

Olası çoğaltılabilir [PHP Varsayılan İşlev Parametre değerleri, 'son değil' parametreleri için varsayılan değerden nasıl geçilir?] (Http://stackoverflow.com/questions/10597114/php-default-function-parameter-values -how-to-pass-varsayılan-değer-son-değil) – Ziki

+0

hayır, onun farklı durumda. – randawahyup

cevap

2

ile ÇÖZÜLDÜ Hayır bu mümkün değildir. Argümanların ortasında asılı varsayılan argümanlara sahip olamazsınız. Belgeleri gözden geçirin: http://php.net/manual/en/functions.arguments.php

Varsayılan argümanları kullanırken, varsayılanların herhangi bir varsayılan olmayan argümanın sağ tarafında olması gerektiğini unutmayın; aksi halde işler beklendiği gibi çalışmayacaktır. Eğer ortada koyarak ısrar ederse

, böyle olmak öyle ki, senin $value çok varsayılan olarak null yapmak:

laravel bunu nasıl yaptığını benzer
function where($field, $condition = ' = ', $value = null); 

: https://github.com/illuminate/database/blob/91622fc886baf6263de9f93237929dcc5d61537c/Query/Builder.php#L480

veya where($field, $value) ile ilgili olup olmadığınızı öğrenmek için, hangi çağrıları yaptığınızı bilmek için func_num_args()'u kullanarak basit bir bağımsız değişken sayımı yaparsınız.

+0

ancak laravel, eloquent'de olduğu gibi işlev görür. – randawahyup

+0

Hatırlattığınız için teşekkürler, yazıyordum :) –

+0

anladım, eğer sadece 2 parametresiyle fonksiyonu çağırırsam, ikinci parametreyi bilmiyorum $ değer değil $ koşulu nedir? – randawahyup