الفرق بين cfparam وcfargument في وظيفة الانصهار البارد؟
-
12-11-2019 - |
سؤال
ما الفرق بين هاتين المجموعتين من التعليمات البرمجية، عند استدعائهما مباشرة بعد علامة cffunction:
<cfparam name="bork_bork_bork" default="false">
<cfargument name="bork_bork_bork" required="false" default="false">
المحلول
<cfparam>
, ، عند استخدامه مع السمة الافتراضية، سيضمن وجود متغير.لأنه لا يوجد نطاق محدد، bork_bork_bork
يتم وضعه في Variables
نِطَاق.
<cfargument>
يستخدم لتمرير الوسائط إلى وظيفة.يتم تخزين هذه القيم في Arguments
نِطَاق.يمكنك الوصول إلى القيمة باستخدام arguments.bork_bork_bork
.
لاحظ أن arguments.bork_bork_bork
و bork_bork_bork
ليسوا متشابهين.نطاق arguments
موجود فقط داخل الوظيفة، ويتم تخزين الآخر في Variables
النطاق وسيكون صالحًا في أي مكان على الصفحة (على الرغم من أنني لا أوصي بترميزه بهذه الطريقة.)
نصائح أخرى
cfparam لا علاقة له بالوظائف.أستطيع أن أرى أن هذا مربك، بالنظر إلى أن المعارف / الوسيطة عبارة عن كلمات قابلة للتبديل في معظم اللغات.ضع في اعتبارك أن الوظائف المعرفة من قبل المستخدم لم تتم إضافتها إلى CF حتى الإصدار 5، لذلك لم يكن هناك تعارض في استخدام CFPARAM كوسيلة لتهيئة المتغيرات.علاوة على ذلك، فإن علامة CFPARAM ربما تركت اسمها من الوظيفة القديمة الآن، والمعلمات (أو العكس - بحلول الوقت الذي دخلت فيه إلى CF، في الإصدار 4.0 (1999)، تم إهمال هذه الوظيفة بالفعل، لذلك فاتني التاريخذلك)
cfparam هو وسيلة لتعيين الافتراضي لأي متغير إذا كان المتغير موجودا بالفعل.إنه اختصار للقيام بما يلي: giveacodicetagpre.
cfargument غير قابل للاستخدام فقط بعد علامة فتح لتحديد حجة يتم تمريرها إلى وظيفة CFC أو وظيفة محددة من قبل المستخدم.
من ما أذكره، لا شيء يمكن أن يوجد بين علامة العلامة وعلامة cfargument، لذلك يجب أن تظهر مباشرة بعد علامة CAFF الوظائف.
من داخل الوظيفة، ستقوم بالوصول إلى Cfarguction عبر نطاق الوسائط {حجج .bork_bork_bork} أو عن طريق مجموعة صفيف {"herf=" http://help.adobe.com/en_us/coldfusion/9.0/cfmlref/WSC3FF6D0EA77859461172E0811CBEC22C24-7E47.HTML "rel=" nofollow "> 1 }
سيقوم CFPARAM بالتأكد من أن المتغير متاحا عند الطلب لا يجب استخدامه بدلا من Cfargument.لمزيد من القراءة تحقق من:
href="http://livedocs.adobe.com/coldfusion/8/htmldocs/udfs_08.html#11194005" rel="nofollo"> باستخدام نطاق الوسائط كصفيف
p>