كيفية استخدام الوسائط الافتراضية في PHP
-
26-09-2019 - |
سؤال
اريد تحديد وظيفة doSomething(arg1, arg2)
مع القيم الافتراضية إلى Arg1 = Val و Arg2 = Val
عندما اكتب
function doSomething($arg1="value1", $arg2="value2"){
// do something
}
هل من الممكن الآن استدعاء Dosomething مع Arg1 و Arg2 = "New_Value2"
المحلول
كلا ، للأسف ، هذا غير ممكن. إذا حددت $arg2
, ، سوف تحتاج إلى تحديد $arg1
كذلك.
نصائح أخرى
في بعض الأحيان ، إذا كان لدي الكثير من المعلمات مع الإعدادات الافتراضية ، فسوف أستخدم صفيفًا لاحتواء الوسائط ودمجها مع الافتراضات.
public function doSomething($requiredArg, $optional = array())
{
$defaults = array(
'arg1' => 'default',
'arg2' -> 'default'
);
$options = array_merge($defaults, $optional);
}
حقا فقط من المنطقي إذا كان لديك الكثير من الحجج رغم ذلك.
function doSomething( $arg1, $arg2 ) {
if( $arg1 === NULL ) $arg1 = "value1";
if( $arg2 === NULL ) $arg2 = "value2";
...
}
والاتصال:
doSomething();
doSomething(NULL, "notDefault");
هل سبق لك تعيين Arg1 ولكن ليس Arg2؟ إذا لم يكن الأمر كذلك ، فسوف أقوم بتبديل الطلب.
لا تنتمي إلى StackOverflow