After taking your course, my knowledge of PHP has ballooned! "بعد الاستيلاء على دراستك، وقد انتفخ معرفتي بي!"
سلب

وظيفة المعلمات

في PHP ويسمح لك لتمرير المعلمات إلى الوظائف التي عادة بتكوين وظيفة تغيير الطريقة التي سوف تستجيب.

معلمات الدالة الافتراضية

ولكن هناك العديد من الخيارات في كيفية التعامل مع المعلمات وظيفة في بي. الأول هو لتحديد الافتراضي لمعلمة في تعريف الدالة الذي يحدد قيمة افتراضية.

في بي لم يكن هناك خيار لأداء وظيفة الزائد ولكن هذا يمكن إلى حد ما أن تستخدم لنفس الغرض.

An example of Method overloading in C # / / مثال على أسلوب الحمولة الزائدة في C #
string username ) AddUser العامة باطلة (سلسلة اسم المستخدم)
{
string username , GeneratePassword ( ) ) ; AddUser (سلسلة المستخدم، GeneratePassword ())؛
}

string username , string password ) AddUser العامة باطلة (سلسلة المستخدم، كلمة المرور سلسلة)
{
string username , string password , " Default " , " User " ) ; AddUser (سلسلة المستخدم، كلمة المرور سلسلة، "الافتراضي"، "المستخدم")؛
}

string username , string password , string firstname , string lastname ) الجمهور باطل AddUser (سلسلة المستخدم، كلمة المرور سلسلة، سلسلة الاسم الأول، اسم العائلة سلسلة)
{
/ *
*
* /
}
An example of parameter defaults in PHP / / مثال على افتراضات المعلمة في PHP

AddUser ( $ username , $ password , $ firstname = " Default " , $ lastname = " User " ) جمهور AddUser وظيفة ($ المستخدم، كلمة السر $ الاسم الأول = "الافتراضي"، $ اللقب = "المستخدم")
{
/ *
*
* /
}

وكما ترون لقد كنت غير قادر على إضافة ما يصل إلى التخلف عن الأسلوب كما حدث في C #. هذا هو لأنه عندما يتم تعريف معلمة القيم الافتراضية فقط ثابت وغير ذلك لا يسمح للمتغيرات أو وظائف لاستخدامها.

AddRole ( $ role = ' default ' , $ user_id ) وظيفة AddRole ($ دور = 'الافتراضية'، $ user_id)
{
/ *
*
* /
}

12 ) ; AddRole (12)؛

ولذلك عندما يتم استدعاء الدالة أعلاه لم يتم تحديد دور فقط unfortunatley $ user_id وهذا يسبب خطأ في ال 12 سيتم تمريرها إلى المعلمة $ دور مغادرة غير محدد $ user_id.

وينبغي أن معلمات الدالة وعلاوة على ذلك مع الافتراضية المحددة يكون دائما في نهاية القائمة وظيفة معلمة. وعلاوة على ذلك يجب أن إذا كنت تريد تحديد معلمة ضمن معلمات المتعثرة عدة يمكن provieded المعلمات المؤدية إلى المعلمة كما هو محدد بشكل جيد. كما يمكن أن يرى مع المعلمة $ role_type

AddRoleDetails ( $ role = ' default ' , $ user_id , $ description = ' Default details ' , $ role_type = ' Normal ' , $ role_admin = " Default " ) AddRoleDetails وظيفة ($ دور = 'الافتراضية'، $ user_id، $ وصف "تفاصيل الصورة '=، $ role_type =" طبيعي $ role_admin =" الافتراضي ")
{
/ *
*
* /
}

' default ' , 12 , ' Default details ' , ' High ' ) ; AddRoleDetails ('الافتراضية'، 12 عاما، وتفاصيل الصورة '،' عالي ')؛

وظائف مع عدد متغير من المعلمات

يمكن أن تنتقل وظائف في بي عدد متغير من المعلمات

AddTemplate ( ) وظيفة عامة AddTemplate ()
{
args = func_get_args ( ) ; $ وسائط = func_get_args ()؛
}

وfunc_get_args وظيفة () تمرير كافة المعلمات إلى وظيفة يمكن إرجاعها كصفيف. يمكن أن تستخدم في بعض الأحيان أنها تتوقع أن يتم تمرير الحد الأدنى لعدد المعلمات إلى وظيفة وfunc_num_args () لضمان عدم وجود العدد الصحيح من المعلمات.

يمكنك مزيج المباراة متغير قوائم حجة طول مع مجموعة قوائم حجة لذلك ...

AddTemplate ( $ templateName ) جمهور AddTemplate وظيفة ($ TEMPLATENAME)
{
params = func_get_args ( ) ; $ params = func_get_args ()؛
}

Unfortunatley فإن هذا يعني أنه يمكنك الوصول إلى المتغير $ TEMPLATENAME مباشرة أو من خلال $ params. ومع ذلك فمن الأفضل لإزالة $ TEMPLATENAME من قائمة المعلمة. مثل ذلك ...

AddTemplate ( $ templateName ) جمهور AddTemplate وظيفة ($ TEMPLATENAME)
{
params = func_get_args ( ) ; $ params = func_get_args ()؛
$ params [ 0 ] ) ; التصفير ($ params [0])؛
}

لاحظ أن معايير محددة هي في سيطة صفيف قائمة في النظام. هذا هو السبب في قيمة دولار TEMPLATENAME هو أولا قبل أي متغير آخر في الصفيف.

AddTemplate ( ) وظيفة عامة AddTemplate ()
{
func_num_args ( ) < 1 ) إذا كان (func_num_args () <1)
{
Exception ( " You need to add more parameters to this function ! " ) ; رمي استثناء الجديدة ("أنت بحاجة لإضافة المزيد من المعلمات لهذه المهمة!")؛
}
args = func_get_args ( ) ; $ وسائط = func_get_args ()؛
}

يمكنك أيضا الحصول على وظيفة معلمة في موقف معين في القائمة حجة باستخدام func_get_arg (). تمر ببساطة عدد صحيح يشير إلى موقف مؤشر للمعلمة لاستخدامه في وظيفة وانها ستعود فقط تلك القيمة.

" Chris " , " Sarah " , " Jane " ) ; AddPeople ("كريس"، "سارة"، "جين")؛
AddPeople ( ) AddPeople وظيفة ()
{
func_get_arg ( 1 ) ; صدى func_get_arg (1)؛
}

لذلك فإن المثال أعلاه العودة "سارة".


لا وقدمت تعليق.
أمن صورة
كتبه الدباغ دومينيك
آخر تحديث: 2011/10/25 16:00:38