فب هي واحدة من لغات البرمجة الأكثر شعبية ، والذي يستخدم على نطاق واسع لتطوير الموقع والتطبيق. لديها العديد من الوظائف المريحة والقوية ، بما في ذلك النطاقات المختلفة التي تحدد مدى توفر المتغيرات والوظائف في البرنامج. في هذه المقالة ، سوف ننظر إلى الأنواع الرئيسية من النطاقات في فب وخصائصها.
فب يوفر أربعة أنواع من نطاقات: العالمية والمحلية ، ثابت ، ونطاقات الطبقة. كل مجال من مجالات الرؤية له خصائصه وقواعد الاستخدام الخاصة به. يسمح لك النطاق العالمي باستخدام المتغيرات والوظائف في أي مكان في البرنامج. النطاق المحلي محدود بوظيفة أو كتلة رمز ، والمتغيرات المحددة داخل هذا النطاق ستكون متاحة فقط بداخله. يستخدم النطاق الثابت لإنشاء متغيرات تحتفظ بقيمتها بين استدعاءات الوظائف. وأخيرا ، نطاق الفصل ، الذي يحدد إمكانية الوصول إلى خصائص الفصل وطرقه من الخارج.
وبالإضافة إلى ذلك ، فب يوفر القدرة على استخدام الكلمات الرئيسية العالمية والثابتة لتحديد صراحة نطاق المتغيرات. تستخدم الكلمة الرئيسية العامة للوصول إلى المتغيرات العامة داخل دالة أو طريقة لفئة ، ويتم استخدام الكلمة الرئيسية الثابتة لإنشاء متغيرات وطرق ثابتة للفئة.
في هذه المقالة ، سننظر في كل نوع من هذه الأنواع من النطاقات بمزيد من التفصيل ونخبرك بكيفية استخدام كل منها بشكل صحيح.
- النطاق المحلي في فب
- النطاق العالمي في بي إتش بي
- نطاق ثابت في فب
- نطاق المعلمات وظيفة في فب
- نطاق في الطبقات (أساليب وخصائص) في فب
- نطاق مساحة الاسم في فب
- سؤال وجواب
- ما هي النطاقات المتوفرة في بي إتش بي?
- ما هو النطاق العالمي?
- ما هو النطاق المحلي?
- ما هو نطاق الطبقة?
النطاق المحلي في فب
هناك عدة نطاقات من المتغيرات في فب. واحد منهم هو النطاق المحلي.
المتغير المعلن داخل دالة أو طريقة له نطاق محلي ولا يتوفر إلا داخل تلك الوظيفة أو الطريقة. لا يمكن استخدامه في وظائف أخرى أو داخل النطاق العالمي.
مثال على إعلان متغير محلي:
name اسم = 'جون';
وظيفة تحية () {
name اسم = 'أليس';
صدى ' مرحبا,'. $اسم;
}
تحية () ؛ / / المخرجات 'مرحبا ، أليس'
اسم ؛ / / المخرجات'جون'
في المثال أعلاه ، لدينا اسم المتغير العام global ، والذي تم الإعلان عنه خارج الوظيفة. داخل وظيفة تحية () ، نعلن متغير محلي بنفس الاسم-الاسم. عندما يتم استدعاء وظيفة تحية () ، فإنه يخرج القيمة المحلية لمتغير اسم name ، والتي ستكون 'أليس'. ومع ذلك ، بعد استدعاء وظيفة ، ونحن إخراج القيمة العالمية للمتغير اسم name ، الذي لا يزال 'جون'.
عند العمل مع النطاق المحلي ، من المهم أن تتذكر أن المتغيرات داخل الوظائف غير مرئية من الخارج. لا يمكن استخدامها أو تعديلها خارج الوظيفة. يساعد هذا في تجنب التعارضات ويسمح لك بمشاركة البيانات بين الوظائف المختلفة.
النطاق العالمي في بي إتش بي
النطاق العالمي في فب هو مجال حيث المتغيرات والوظائف يمكن الوصول إليها من أي جزء من البرنامج. ستكون جميع المتغيرات المعلنة في النطاق العالمي متاحة طوال مدة البرنامج.
للإعلان عن متغير في النطاق العام ، يتم استخدام الكلمة الرئيسية GLOB غلوبالس قبل اسم المتغير. على سبيل المثال:
GLOB الكرة الأرضية ['فار'] = 10;
وبالتالي ، يصبح متغير $فار عالميا ويمكن استخدامه في أي مكان في البرنامج. ومع ذلك ، لا ينصح باستخدام النطاق العالمي ، لأن هذا يمكن أن يؤدي إلى خلط السياقات وتعقيد تصحيح أخطاء البرنامج.
ينطبق النطاق العالمي أيضا على الوظائف. إذا تم الإعلان عن وظيفة في النطاق العالمي ، فيمكن استدعاؤها من أي جزء من البرنامج. على سبيل المثال:
وظيفة غلوبالفونكتيون () {
صدى "هذه وظيفة عالمية";
}
يمكن استدعاء وظيفة غلوبالفونكتيون() من أي مكان في البرنامج على النحو التالي:
غلوبالفونكتيون();
ومع ذلك ، لكي تكون الوظيفة متاحة داخل النطاق المحلي ، يجب استيرادها باستخدام الكلمة الرئيسية العالمية. على سبيل المثال:
وظيفة لوكالفونكتيون () {
العالمية v فار;
صدى " قيمة فار هي:".v فار;
}
في هذه الحالة ، يتم الإعلان عن متغير $فار في النطاق العام ويستخدم داخل الدالة المحلية () بعد الاستيراد باستخدام الكلمة الرئيسية العالمية.
يجب أن يقتصر استخدام النطاق العالمي في فب فقط في الحالات الضرورية لتجنب المشاكل المحتملة مع سياق وأمن البرنامج.
نطاق ثابت في فب
نطاق ثابت في فب يسمح لك لحفظ قيمة المتغيرات بين وظيفة أو طريقة المكالمات. يتم استخدام الكلمة الأساسية الثابتة للإعلان عن متغير بنطاق ثابت.
في كل مرة يتم فيها استدعاء دالة أو طريقة بمتغير بنطاق ثابت ، يتم تخزين قيمة هذا المتغير بين المكالمات. يتيح لك ذلك استخدام متغير لتخزين النتائج أو الحسابات الوسيطة دون التأثير على المتغيرات الأخرى في البرنامج.
مثال:
عدد الدالة_المكالمات () {
ثابت count العد = 0;
$count++;
صدى "تم استدعاء الوظيفة". عد . "مرة واحدة (أ).";
}
عدد المكالمات () ؛ / / الإخراج: تم استدعاء الوظيفة 1 مرة(أ).
عدد المكالمات () ؛ / / الإخراج: تم استدعاء الوظيفة 2 مرات(أ).
عدد المكالمات () ؛ / / الإخراج: تم استدعاء الوظيفة 3 مرات (أ).
في هذا المثال ، يحتوي متغير العد $على نطاق ثابت،لذلك يقوم بتخزين القيمة بين المكالمات إلى دالة العد (). في كل مرة يتم فيها استدعاء دالة ، تزداد قيمة المتغير بمقدار 1.
يستخدم النطاق الثابت أيضا عند الإعلان عن الأساليب الثابتة وخصائص الفصل. في هذه الحالة ، تنتمي الخاصية أو الطريقة الثابتة إلى الفئة ، وليس مثيلاتها.
مثال:
عداد الصف {
ثابت العامة count العد = 0;
زيادة وظيفة ثابتة العامة () {
النفس:: count العد count;
}
وظيفة ثابتة العامة جيتكونت () {
عودة النفس:: count العد;
}
}
عداد:: زيادة();
صدى عداد:: جيتكونت () ؛ / / الإخراج: 1
عداد::الزيادة();
صدى عداد:: جيتكونت () ؛ / / الإخراج: 2
في هذا المثال ، الخاصية الثابتة count العد والطرق الثابتة زيادة() و جيتكونت () تنتمي إلى فئة العداد. وبالتالي ، يتم الحفاظ على قيمة متغير ثابت بين المكالمات إلى أساليب الفئة.
نطاق المعلمات وظيفة في فب
في فب ، المعلمات وظيفة هي المتغيرات التي تأخذ القيم التي تم تمريرها من الخارج عند استدعاء وظيفة. معلمات الوظيفة لها نطاقها الخاص ، والذي يحدد مدى توفر هذه المتغيرات داخل الوظيفة.
يقتصر نطاق معلمات الوظيفة على الوظيفة نفسها التي يتم تعريفها فيها. هذا يعني أن معلمات الوظيفة متوفرة فقط داخل هذه الوظيفة ولا يمكن الوصول إليها من الخارج.
يمكن تمرير معلمات الوظيفة بالقيمة أو بالرجوع إليها. عند تمرير قيمة بالرجوع ، سيؤثر تغيير معلمة داخل الوظيفة على قيمتها من الخارج.
مثال على إعلان وظيفة مع المعلمات:
وظيفة حساب المنطقة (width العرض ، height الارتفاع) {
- المساحة = - العرض * - الارتفاع;
صدى " المنطقة تساوي:". $المنطقة;
}
منطقة الحساب (10 ، 5);
في هذا المثال ، المتغيرات-العرض و-الارتفاع هي معلمات دالة منطقة الحساب (). وهي متوفرة فقط داخل الوظيفة ويتم تعيين قيمها أثناء استدعاء الوظيفة.
نطاق المعلمات وظيفة في فب مفيد جدا لعزل البيانات ومنع التغييرات العرضية من الخارج. بالإضافة إلى ذلك ، يسمح لك بتمرير القيم والتأثير عليها داخل دالة دون التأثير على بيانات المصدر.
نطاق في الطبقات (أساليب وخصائص) في فب
في فب ، يحدد نطاق توافر أساليب وخصائص فئة. هنا سننظر في المستويات الأربعة للنطاق المنصوص عليها في فب:
- عام( عام): يمكن الوصول إلى الأساليب والخصائص مع هذا النطاق من أي مكان في الكود ، بما في ذلك الفئات الأخرى ومثيلات الفصل. يمكن استدعاء الطرق والخصائص العامة واستخدامها من خارج الفصل ، وكذلك داخل الفصل نفسه.
- محمي: الأساليب والخصائص بهذا النطاق متوفرة فقط داخل الفصل وأحفاده (الورثة). لا يمكن استدعاء الطرق والخصائص المحمية أو استخدامها من خارج الفصل أو من مثيلات الفصل.
- خاص( خاص): الأساليب والخصائص مع هذا النطاق متوفرة فقط داخل الفئة التي يتم الإعلان عنها. لا يمكن استدعاء الأساليب والممتلكات الخاصة أو استخدامها من خارج الفصل أو من ورثته.
- ثابت (ثابت): الأساليب والخصائص الثابتة شائعة في جميع مثيلات الفصل ، وهي متاحة أيضا دون الحاجة إلى إنشاء مثيل للفئة. يمكن استدعاؤها واستخدامها من خارج الفصل ومن مثيلاتها.
نطاق في فب يسمح لك للسيطرة على الوصول إلى عناصر الطبقة ويوفر تغليف البيانات والوظائف. هذا جانب مهم من البرمجة الشيئية التي تساعد على تحسين الأمان وتبسيط تطوير البرامج.
نطاق مساحة الاسم في فب
مساحات الأسماء في فب توفر القدرة على تجميع التعليمات البرمجية ذات الصلة لتجنب تعارض الاسم وإعادة استخدامها. عند الإعلان عن مساحة اسم في فب ، فإن جميع الأسماء المحددة داخله ستكون في مساحة الاسم هذه وستكون متاحة فقط داخلها.
تسمح لك مساحات الأسماء ببناء التعليمات البرمجية الخاصة بك وجعلها أكثر قابلية للفهم والتنظيم. كما أنها تزيد من مرونة الكود من خلال السماح باستخدام نفس الأسماء في مساحات أسماء مختلفة دون تعارض.
في فب ، هناك نوعان من نطاق مساحة الاسم: العالمية والمحلية.
- النطاق العام هو النطاق الذي يعمل بشكل افتراضي للرمز غير الموجود داخل أي مساحة اسم. داخل النطاق العالمي ، يجب عليك تحديد المسار الكامل للفئات والوظائف من أجل الوصول إليها دون تعارضات.
- النطاق المحلي هو نطاق يتم تعريفه داخل مساحة اسم محددة. ستكون جميع الأسماء المعلنة داخل مساحة الاسم متاحة فقط داخل مساحة الاسم هذه. للوصول إلى العناصر داخل مساحة اسم ، يجب عليك استخدام مسارها المؤهل عن طريق تحديد اسم مساحة الاسم قبل اسم العنصر.
عند الإعلان عن مساحة اسم ، يمكنك أيضا تحديد اسم مستعار لها ، مما يسهل استخدام عناصرها في التعليمات البرمجية. على سبيل المثال:
مساحة الاسم;
استخدام مينامسباس \ ميكلاس كما ميكلاسيالياس;
object كائن = ميكلاسيالياس جديدة();
object كائن - > طريقة();
في المثال أعلاه ، أعلنا الاسم المستعار 'ميكلاسيالياس' للفئة 'ميكلاس' في مساحة الاسم 'مينامسباس'. الآن يمكننا استخدام هذا الاسم المستعار لإنشاء كائن واستدعاء طريقته.
| نوع منفذ العرض | مثال الاستخدام |
|---|---|
| منفذ العرض العالمي | وظيفة ميفونكتيون () { / * ... */ } |
| النطاق المحلي | مساحة الاسم مينامسباس { وظيفة ميفونكتيون() { /* ... */ } } |
استخدام مساحات الأسماء في فب يساعد على تنظيم التعليمات البرمجية ، وتجنب تعارضات الأسماء ، وتوسيع نطاق المشاريع بسهولة. إنها أداة قوية تجعل التطوير أكثر ملاءمة وكفاءة.
سؤال وجواب
ما هي النطاقات المتوفرة في بي إتش بي?
فب يوفر أربعة نطاقات: العالمية والمحلية ، نطاق الطبقة ، ونطاق ثابت.
ما هو النطاق العالمي?
يعني النطاق العالمي أن المتغير مرئي في أي مكان في البرنامج ، بغض النظر عن مكان الإعلان عنه.
ما هو النطاق المحلي?
يحد النطاق المحلي من نطاق المتغير المحدد داخل دالة أو طريقة. المتغير مرئي فقط داخل هذه الوظيفة أو الطريقة.
ما هو نطاق فئة?
نطاق فئة يقيد الوصول إلى خصائص وأساليب الطبقة. المتغيرات مع نطاق الفئة متاحة فقط داخل الفئة وفئاتها الفرعية.