PHP: الوجهة والوظائف الأسبوعية. الوظائف ذات المعلمات ، ويكي الديناميكي ، وإنشاء وظائف PHP ما هي وظيفة php

ملحوظة:تم تنشيط النسخة التكييفية من الموقع ، حيث تقوم تلقائيًا بتحديث كمية صغيرة من متصفحك وإضافة بعض التفاصيل إلى الموقع لسهولة القراءة. سألقي نظرة!

كل يوم جيد. مقال اليوم نواصل zanuryuvatisya في PHP النفقات العامة ، ولكن ليس فقط. على سبيل المثال ، ستعرف لغز الكلمات المتقاطعة ، بعد أن خمنت أيها يمكنك أن تأخذ من 500 إلى 1500 كاربوفانتسيف. كل التفاصيل ، لكننا نواصل القراءة.

ما هي الوظيفة؟

وظيفة- هذا هو مصدر الكود ، لذا يمكن التحقق منه في أماكن مختلفة من سكربت PHP (جانبنا).

بناء الجملة:

وظيفة siteOn () (// function body echo "مرحبًا بجميع قراء الموقع على المدونة!" ؛)

دي siteOn- Tse dovіlne іm'ya funktsії ، إنها مستقلة عن التسجيل. الوظيفة الموجودة في التطبيق هي عرض نص المهام. إذا قام مترجم PHP بمعالجة الكود ، فلن يكون من الممكن تشغيل وظيفة غبية بدون جسم ، وبالطبع لن يفوز. سيتم الاحتفاظ بجسم الوظيفة في الذاكرة حتى الانتهاء من نص PHP ، وذلك حتى نهاية اهتمام الصفحة.

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

"؛) siteOn () ؛ // siteOn () function wiki ؛ // siteOn () function wiki ؛ // function wiki؟>

في التطبيق ، أطلقنا على الوظيفة ما يصل إلى 3 مرات ، والنتيجة هي:

هل تحتاج إلى المزيد من الميزات؟

سيكون أفضل ، حسنا ، ويعمل؟ يمكننا فقط كتابة ثلاثة صفوف بدون دالة. إذا استطعنا ، حتى لو أردنا تغييره في هذا الجزء ، فسنقوم بتغييره في مكان واحد فقط ، وليس في ثلاثة. ومع ذلك ليس كل شيء! نظرنا في الحال إلى خيار بسيط ، إذا كان الأمر في ملف واحد. في حياة الملف ، قد يكون هناك آلاف الصفوف ، وقد يكون توزيع الرائحة الكريهة فوضويًا في جميع أنحاء الملف.

واحد على اليمين ، ادخل وتذكر كل شيء في وظيفة واحدة ، وإلا تذكر خلال 10 أشهر ثم ابحث في الملف بأكمله. لكن ليس كل! المواقع لا تضيف ما يصل إلى ملف واحد ، مثل هذا الجزء من الكود يمكن أن يحدث لنا في لحظة في عشرات الملفات المختلفة ، ولدينا فرصة لتكرار كل تكرار هذا الرمز في ساعة واحدة. نحن نعلم أنه ، على سبيل المثال ، يتم تخزين جميع الوظائف في ملفات ، وسأذهب إلى هناك ، وأتذكر مرة واحدة.

لذلك يمكنك أن تأخذ القاعدة الخاصة بك: بمجرد تكرار الكود ، يجب العمل به!

إعادة فحص الأساس

في PHP ، لا يمكن نطق نفس الوظيفة مرتين. على سبيل المثال ، لكتابة:

// أيا كان كود أو بدون شيء) وظيفة siteOn () ( // أيا كان كود أو بدون شيء } ?>

هذا يتطلب مثل هذا العفو. قبل الكلام ، تذكر جميع أنواع العفو:

لا يمكن إعادة تعريف siteOn () (تم الإعلان عنه مسبقًا في Z: \ home \ custom \ www \ index.php: 3) في Z: \ home \ custom \ www \ index.php في السطر 9

يذكر أبناء رعيتنا أننا قد أصمنا بالفعل مثل هذه الوظيفة ، وتم تعيينها ، في نفس الملف في هذا الصف ، تعرضنا للسرقة بالفعل. أستميحك العفو عن أن PHP بها آلاف الآلاف من الوظائف المضمنة ، لذلك يمكن بسهولة إلقاء اللوم عليك في هذا الموقف لمدة ساعة من التطوير.

لمعرفة ما إذا كان لديك بالفعل مثل هذه الوظيفة ، يمكنك اختبار وظيفة function_exists (). بعقب:

// أيا كان كود أو بدون شيء) إذا (function_exists ("siteOn")) (صدى "هذه الوظيفة موجودة بالفعل!" ؛)؟>

نتيجة:

على وجه الخصوص ، ليس لدي وظيفة بالنيابة ، لكن أعلم أنك مذنب في ذلك.

الحجج الوظيفية

يمكن تسمية وسيطة الدالة بالمعامل. تبدو هكذا:

في التطبيق ، يتم تغيير وسيطة الوظيفة المؤلف. كيف يمكن لـ yogo vikoristati؟ عند استدعاء الدوال ، يمكننا تمرير القيمة الكاملة للوسيطة. نعطي وظائفنا المرونة والديناميكيات اللازمة:

"؛) siteOn (" سيرجي ") ؛ // الطريقة الأولى $ name =" أندري "؛ // طريقة أخرى siteOn (اسم $) ؛ siteOn () ؛ // لم يتم تمرير أي شيء ?>

نتيجة:

ياك باشيت ، إذا لم نجتاز الجدال ، فقد أخذنا العفو من النوع تحذير، بمجرد أن يتحسن نص PHP الخاص بنا ، استمر كل شيء. حسنًا ، أعلم ، عفواً ، سأقوم حتى بالإبلاغ عن معلومات حول أولئك الذين حدث كل شيء. تحذير - هذا عفو خطير ولا يمكن تجاهله.

يمكن أن تكون الوظيفة أم لعدة حجج ، على سبيل المثال:

"؛) siteOn (" سيرجي "،" الموقع على! ") ؛ // الطريق الأول $ name =" أندري "؛ // طريقة أخرى siteOn (اسم $ ،" Licorice ") ؛ siteOn (" فيودور إيفانوف ") ؛ // اجتاز أكثر من وسيطة واحدة ?>

نتيجة:

وظائف نقرات الأسبوع غير القياسية

بروس رقيقة. في الطريق القادم ، قم باستدعاء الوظائف ، ولا ترن بأي شيء ، ولن تضطر إلى العمل بهذه الطريقة ، لكنك تعرف الذنب الجديد. ديفيموسيا:

"؛) $ text =" siteOn "؛ // مرت في اسم الوظيفة الذي تم تغييره$ text ("سيرجي"، "الموقع على!")؛ // نسمي الوظيفة عبر التغيير ?>

ستكون النتيجة هكذا وصوت:

مثال عملي لاستخدام الوظائف

هل تتذكر جدول الضرب في المقدمة؟ يوجد لدينا є 2 معلمات: عدد الصفوفі عدد stovptsiv، كما نطلب التغيير. حان الوقت للعمل على الوظيفة بأكملها من هذا الرمز ، حيث سنأخذ قيمتين أعلى مدرجتين!

سأجعل كل الكود من الدرس السابق غير قابل للتغيير ، لأننا الآن لن نضطر إلى تعيين صفوف وأعمدة في رقم جديد ، يصبح العالم أسهل عند استدعاء دالة:

// علق على q 2 من الصفوف ، بحيث يتم الآن نقل الكمية عند استدعاء الوظيفة // $ rows = 20 ؛ // عدد الصفوف ، tr // $ cols = 20 ؛ // عدد الأعمدة ، tdالجدول بالدولار = "

"؛ لـ ($ tr = 1؛ $ tr<=$rows; $tr++){ $table .= ""؛ لـ ($ td = 1؛ $ td<=$cols; $td++){ if ($tr===1 or $td===1){ $table .= ""؛) آخر ($ table. =" "؛)) $ table. =""؛) $ table. ="
". $ tr * $ td."". $ tr * $ td."
"؛ echo $ table ؛) getTable (3،3) ؛ // عرض جدول مضاعف 3 × 3 getTable (5،5) ؛ // عرض جدول مضاعف 5 × 5 getTable (10،10) ؛ // عرض جدول ضرب 10 مرات 10 ?>

نتيجة:

حجج الإغلاق

تحت ساعة إنشاء الوظيفة ، يمكننا وضع الحجج الكافية للترقية. لا يمكن عرض الحجج التي تبدو مهمة للتأمين عند استدعاء الوظيفة ولن يكون هناك عفو. لاستبدال الوسيطة المفقودة ، ستقوم الوظيفة تلقائيًا باستبدال قيمة الترقية. بعقب:

"؛) siteOn (" سيرجي ") ؛؟>

تطبيق من هو حجة مدونةنظرا لقيمة المشاركة الموقع على!بسبب ذلك تم استدعاء الوظيفة باستخدام وسيطة واحدة فقط ، وتم استدعاء الأخرى بعد اختصار قيمتها.

نتيجة:

يتم تسجيل الحجج لترويج obov'yazkovo من قبل البقية.

بعبارة أخرى: إن الحجج obov'yazkovі (بدون معنى وراء التلميحات) غاضبة من الحق في الذهاب أولاً ، وتذهب الحجج وراءها بعيدًا ، كما لو كانت في المعنى الكامن وراء التلميحات.

الوظيفة هي مجرد كتلة من التعليمات البرمجية ، والتي يمكنني تسميتها وإدخال معلمات للمعالجة ، والتي يمكن اختراقها ، إذا احتجنا إليها. يمكنك الابتعاد ، هناك القليل منهم ، ولكن ، صدقني ، إذا فهمت وتعلمت كيفية تهجئة الوظائف ، فيمكنك توفير بضع ساعات وكتابة التعليمات البرمجية التي ستكون غنية للقراءة!

على الرغم من أن موضوع الوظائف غالبًا ما يتم قبوله على أنه قابل للطي للمبرمجين المبتدئين ، إلا أنه من الضروري أن يعرفه أي نوع من الأشخاص. قد يستغرق الكثير من الوقت ، لكن لا تستسلم ، حتى لو كانت الوظائف يمكن أن تساعدك في مبرمج محترف.

نقوم بإنشاء أول دالة php

إذا كنت تقوم بإنشاء دالة ، فستحتاج إلى البدء بإعطاء اسمي ، على سبيل المثال ، myCompanyName. من الأفضل تسمية الوظائف بأسماء معقولة ، مثل الإحساس ، حتى لا تضيع. تسي نفسها تستحق العناء.

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

يبدو المحور وكأنه دالة لا صوت لها myCompanyName:

ملحوظة: يمكن أن يبدأ اسم الوظيفة من علامة "_" ولكن ليس من الأرقام!
إنه مجرد إطار عمل وظيفتنا ، وفي المنتصف يمكننا وضع أي كود نريده. سيتم وضع علامة على الوظائف الأسبوعية. تشي باشيت في المعابد المتعرجة في مؤخرة التأشير "()"؟ تشير أقواس Qi إلى أن de قد يكون رمز وظيفتنا. القوس المنحني "(" قل PHP ، أن كود الوظيفة يتم إصلاحه ، ومتعرج ، أنه يغلق ")" يقول PHP ، أن وظيفتنا قد اكتملت!

دعنا ننتقل إلى الأمر بطريقة بسيطة ، على سبيل المثال.

كل شيء سهل ، أليس كذلك؟ الآن دعنا نتعلم كيفية استدعاء وظيفتنا.

أنهى Wiklik وظيفة php

الآن ، إذا انتهيت من ترميز أبسط وظيفة ، فقد حان الوقت لتجربتها. يوجد أدناه نص بسيط. دعنا نحدد محور ماذا: دعونا نعبّر عن وظيفتنا وننتصر її.

!
"؛ myCompanyName () ؛ صدى" Radium you bachiti!
";

إذا كنت تريد مؤخرة بسيطة ، فمن المهم أن تفهم أن عدم الاحترام يمكن أن يتسبب في العفو أم لا. إذا كنت تقوم بإنشاء وظيفة ، فاتبع هذه التوصيات البسيطة.

  • ابدأ دائمًا وظائفك بالكلمة الأساسية للوظيفة.
  • تذكر أن كود وظيفتك يجب أن يكون بين "(" و ")".
  • إذا كنت تستدعي وظيفة ، فغيّر تهجئتك للتأكد من تهجئتها بشكل صحيح.

خيارات مع المعلمات

الاحتمال الآخر يكمن في حقيقة أنه يمكن استدعاء الوظائف بالمعلمات ، بحيث يمكنها تمرير معلومات إضافية إلى الكود. وظيفتنا الأولى ، myCompanyName ، ليست معقدة للغاية ، لأن كل شيء آخر في نفس الصف.

ومع ذلك ، فقد اخترقنا المعلمات ، يمكننا إضافة بعض الرقائق الإضافية إلى وظيفتنا! يُطلق على المعلمة shackles () وتبدو وكأنها تغيير PHP عادي. دعنا ننشئ وظيفة جديدة ، كما لو كنا ننشئ مجاملة بناءً على اسم الشخص ، حيث يتم تمرير المعلمة إلينا.

"; } ?>

الآن ، إذا استدعينا الدالة sayHello ، فمن الممكن تحديد المعامل (im'ya) بالنسبة لأقواس اللغة ، ولكن يتم التعبير عن الوظيفة باستخدام المعلمة ولا يمكن تجاهلها.
إذا أردنا تحديد عدد صغير من المعلمات ، فإننا ببساطة نتجاوزها بالوظائف التي لا صوت لها من خلالها وكل شيء ، فلا حاجة إلى أي شيء آخر.

تحويل قيمة دالة php

بالإضافة إلى ذلك ، إذا كان بإمكانك تمرير المعلومات إلى دالة ، فيمكنها أيضًا تدوير القيمة نفسها. لكن تذكر أن الوظيفة يمكنها فقط تدوير قيمة واحدة ، إذا كنت تريدها أن تكون: رقم كامل ، أو خطاب ، أو قيمة منطقية ، فأنت مخطئ!

كيف يمكنك قلب المعنى؟ أفضل وردة على المؤخرة. سنقوم بالتعبير عن الوظيفة بالمعلمات ، ثم نعطي نتيجة التغيير الفعلي ، المحور مثل هذا:

$ myNumber = mySum (3، 4) ؛ // خذ نتيجة استدعاء دالة mySum إلى $ myNumber echo "بعد استدعاء الوظيفة ، myNumber =". $ myNumber. "
"; ?>

لجذب وظيفة المعنى - تمت إضافة بيان الإرجاع إليها ، فلماذا تحتاجها؟ يتم تخزين نتيجة إضافة رقمين في متغير إجمالي $ ، ولمساعدة إرجاع إجمالي $ ، يتم تمرير القيمة إلى الوظيفة نفسها. دعنا نضيف فقط تغيير $ myNumber بعد استدعاء الدالة mySum مع معلمتين 3 و 4 (الرقم الكامل ، كما لو كان الجمع معًا).

تدرب وتعلم وستحصل على كل شيء!

يتم إنشاء وظائف النواة بعد مساعدة وظيفة الكلمات الرئيسية ، وبعد ذلك تتبع الوظيفة ، قائمة بالحجج (قد يكون عددها فارغًا) وجسم الوظيفة نفسها. تعيين الوظائف هو أوسع نطاقا. إذا حدث لك وضع علامة على نفس الرمز مرارًا وتكرارًا ، فيجب عليك وضعه في وظيفتك ، ثم النقر فوقه فقط في المكان الذي تريده. يمكن أن تبدأ وظائف Im'ya من رمز الأبجدية اللاتينية ، ويمكنك استبدال الأرقام ورمز الصليب السفلي. من أجل الخدمة المقبولة ، تبدأ أسماء الوظائف في PHP بأحرف صغيرة ، وإذا كان هناك أكثر من كلمة واحدة في اسم الحرف المنتصر ، فمن الجديد أن تبدأ بالحرف الكبير ، أو على التوالي ، أو بعد رمز السلسلة الفرعية السفلية.

/ ** * وظيفة مستخدم بسيطة بشكل مذهل * / وظيفة مستخدم () ()

بالنسبة للوظيفة ، هناك أكثر من تعليمات ، كل التعليمات يجب أن توضع في منتصف الأذرع المتعرجة (). كدالة ، هناك تعليمات واحدة فقط ، أن الأذرع المجعدة ليست obov'yazkovі. ألي ، أوصي بأن تبدأ منتصرا.

PHP لها وظائف قياسية ، لن تتمكن من مطابقة أسمائها مع أسمائك الخاصة. إذا كنت تريد إنشاء دالة باسم التاريخ () أو الوقت () ، يمكنك تجاهل العفو المرتبط بمحاولة إعادة تعيين الوظيفة. يمكن التصريح عن وظائف PHP مرة واحدة فقط. تم حظر إعادة تخصيص الوظائف. قم باستدعاء الوظائف المعينة في الجزء العلوي من النص (غالبًا في ملفات okremi المتصلة بالنص الرئيسي) في الجزء العلوي من النص الرئيسي. لنقم بإنشاء وظيفة لعرض عنوان IP الخاص بـ koristuvach على الشاشة.

/ ** * وظيفة للحصول على عنوان IP الخاص بـ coristuvach. * عناوين IP مأخوذة من مصفوفة PHP's $ _SERVER superglobal * لجمع بيانات مهمة حول تسجيل الخادم * / وظيفة userIP () (طباعة "

". $ _SERVER [" REMOTE_ADDR "]."

"; }

تم تعيين الوظيفة. من أجل تسميتها ، يكفي أن يحدد البرنامج النصي في المساحة اللازمة وظيفة النقل والمعلمات الضرورية (حسب الضرورة).

userip () ؛ // Vivede screen to koristuvach IP address 127.0.0.1

نطاق الرؤية

العمل مع الوظائف التالية ، وفهم مجال رؤية التغيير. Polyagaet vono في ذلك ، في بعض أماكن السيناريو ، يمكن أن ينتصر yakі z oloshennyh zmіnnyh. التغييرات ، التي تم التعبير عنها في منتصف الوظيفة ، є تغييرات محلية. في منتصف جسم الوظيفة ، يمكن للمرء أن يلجأ إليها ، لكن خارج حدود الوظيفة ، لا يمكن للمرء أن يصل إليها. І navpaki ، zminnі ، obolosheni po tіlom funktsії ، غير متاح للوظائف نفسها. Ale є danі ، yakі متاح في أي سيناريو مكان.

المصفوفات Superglobal

$ _SERVER و $ _SESSION و $ _COOKIE وغيرها من المصفوفات العالمية. هذه البيانات متوفرة في أي سيناريو معين. المحور أقل من رمح منهم:

  • $ _SERVER ["REMOTE_ADDR"] - عناوين IP koristuvach ؛
  • $ _SERVER ["SERVER_NAME"] - اسم الخادم ؛
  • $ _SERVER ["DOCUMENT_ROOT"] - دليل جذر الموقع ؛
  • $ _SERVER ["REQUEST_URI"] - مزود بعنوان المستند.

الحجج الوظيفية

كدالة ، تكون الأم مسؤولة عن الوصول إلى بيانات التغيير ، أو الثوابت ، يمكن نقل بيانات tsі من الحجج المرئية. يمكن أن تقبل وظيفة الجلد عددًا من الوسيطات (المعلمات) ، بما في ذلك الصفر. لم ننقل وظائف نفس الحجج إلى بعقب مدبب. لنلق نظرة على مثال آخر.

/ ** * تفريغ مبلغ الوظيفة لتلخيص قيمتين إضافيتين * / مبلغ الوظيفة ($ value_1، $ value_2) (// يجب أن تقبل الدالة وسيطتين لغويتين جديدتين print $ value_1 + $ value_2؛ // عرض المجموع من هذه الوسائط على الشاشة) $ green_apples = 10؛ // يمكننا الحصول على 10 تفاحات خضراء $ red_apples = 4 ؛ // І є є є 4 تفاح أحمر // يمكن تحديد عدد التفاحات من المكالمة الإضافية لوظيفة المبلغ () // من المفترض أن تأخذ وظيفة amount () وسيطتين ، والتي ستكون عدد كمية التفاح (تفاح أخضر بالدولار ، تفاح أحمر بالدولار) ؛ // Vivede to screen 14

معلمات اللغة الضرورية (معلمات القفل)

يمكن أن تحتوي الوظيفة على عدد كبير من الوسيطات (المعلمات) ، من بينها يمكن أن يكون هناك neobov'azkovі (بما في ذلك الكل). من أجل جعل وسيطة الدالة واضحة ، تحتاج إلى إعطاء قيمة للاختصارات عندما يتم التعبير عن الوظيفة.

/ ** * تفريغ الوظيفة بالقيم الافتراضية * / مبلغ الوظيفة ($ value_1 ، $ value_2 ، $ value_3 = 0) (print $ value_1 + $ value_2 + $ value_3؛)

/ ** * ضع في اعتبارك عدد التفاح * كم مرة تأخذ الدالة amount () ثلاث وسيطات ، * والثالثة غير صالحة ، تم تعيين أجزاء قيمتها * عندما كانت الوظيفة فارغة ، لذا فإن الوسيطة الثالثة * غير محدد ، سيكون فارغًا * / $ geen_apples = 11 ؛ التفاح الأحمر = 7 دولارات أمريكية ؛ المبلغ (التفاح_الأخضر بالدولار ، التفاح_الأحمر بالدولار) ؛ // Vivede on screen 18 // نعلم أن هناك 10 تفاحات أخرى في komorі، raptovo $ yellow_apples = 10؛ // І їх تحتاج أيضًا إلى دفع مبلغ ($ green_apples ، $ red_apples ، $ yellow_apples) ؛ // Vivede للشاشة 28

احترم أولئك الذين نادوني بهذه الوظيفة بالذات ضمن حدود سيناريو واحد. من الممكن أن تعمل skilki في أي وقت بوفرة. عند العمل مع الدوال ، ضع في اعتبارك أحد التفاصيل المهمة - كما هو الحال في منتصف وظائف الحجة ، هناك بلا صوت للترقيات والتعبير ، على الجزء الخلفي من الرأس ، ولكن يشار إليها ، yak є غير مسموع (obov'azkovymi).

الوظيفة userF ($ v1، $ v2 = 100، $ v3) (// لا تفهمني خطأ طباعة $ v1 + $ v2 + $ v3؛)

تناوب القيمة

إحدى السمات الرئيسية للوظائف هي القدرة على تحويل النتيجة. لا تنس أن البرنامج النصي يحتاج إلى العمل مع نتيجة عمل الوظيفة. الأهم من ذلك كله ، من الضروري ببساطة الحفظ والفوز في مكان مختلف ، فالسيناريو ضروري لأغراض أخرى [?] Vlasne ، لغرض رؤية مثل هذه الوظيفة على الشاشة ، فهي عمليا ليست منتصرة.. لكي تقوم الوظيفة بتحويل القيمة على تلك الأجزاء من السيناريو ، والتي يوجد لها viklikan ، من الضروري تسريع عامل الإرجاع. ما إذا كان الكود الذي يتبع تعليمة الإرجاع لا يتم التغلب عليه (حيث أن بيان الإرجاع موجود هناك).

/ ** * قمنا بتعيين قيمة وظيفة المنتقي لتجميع التفاح * قيمة واحدة للقفل. * تفترض الوظيفة ببساطة قيمة الوسيطات ، وتحولها إلى النص ، وليس عرضها على الشاشة. * / مبلغ الوظيفة ($ value_1 ، $ value_2 ، $ value_3 = 0) ($ result = $ value_1 + $ value_2 + $ value_3؛ // فقط أضف قيمة الوسيطة في الدالة إرجاع $ result ؛ // مرر النتيجة إلى البرنامج النصي التغيير $ result - local // th قيمة لا شيء يمكن قراءتها بواسطة الوظيفة body) $ green_apples = 9؛ // لدينا є 9 تفاح أخضر $ red_apples = 14 ؛ // І 14 تفاحة حمراء أخرى // لدينا الكثير من الجحيم ... $ total_green_red = المبلغ ($ green_apples ، $ red_apples) ؛ // بيان الإرجاع الخاص بوظيفة المبلغ () بالقيمة 23 ، // كيفية تعيين التغيير $ total_green_red // حصلنا على 7 تفاح طازج أكثر $ yellow_apples = 7 ؛ // أنا الآن ... total_green_red_yellow $ المبلغ ($ green_apples ، $ red_apples ، $ yellow_apples) ؛ // قم بتدوير القيمة 30 واكتبها // $ total_green_red_yellow $ all = amount ($ total_green_red، $ total_green_red_yellow)؛ // اقلب القيمة 53 // Vivede على الشاشة كل شيء باللونين الأخضر والأسود - 23 طباعة "

الخضر والأحمر - ". total_green_red. $."

// Vivede على الشاشة كل شيء أخضر وأحمر وأصفر - 30 طباعة

الأخضر والأحمر والأصفر لكل شيء - ". total_green_red_yellow $."

// Vivede لشاشة قيمة المجموع - 53 طباعة

قيمة المجموع هي ". $ all".

";

ملحوظة:تم تنشيط النسخة التكييفية من الموقع ، حيث تقوم تلقائيًا بتحديث كمية صغيرة من متصفحك وإضافة بعض التفاصيل إلى الموقع لسهولة القراءة. سألقي نظرة!

مرحبا لقراء المدونة موقععلى! لقد أدركنا أن هذه دالة في PHP ، تعلمنا كيفية إنشاء وظائف قوية ، وتمرير الوسيطات وعمليات الاسترجاعات إليها للكتابة. استمرارًا لموضوع الدوال في PHP ، من الضروري إضافة الكلمات التالية:

  • وظائف Vseredin يمكنك تحريف أي كود PHP (دورات ، غسيل ، ما إذا كانت عمليات) ، بما في ذلك وظائف أخرى (مثل التكامل ، وهكذا ، والطاقة) ؛
  • يمكن أن تستند وظائف Im'ya إلى الأحرف اللاتينية ، أو رمز الحرف ، وإعطائها حفنة من الأحرف أو الأرقام أو الرموز اللاتينية للحرف ؛
  • جميع الوظائف لها نطاق عالمي ، مما يعني أنه ما إذا كانت الوظيفة يمكن أن تكون شيطانية أم لا ، فقد يكون ذلك هو تعيين الوظيفة في منتصف الآخر ؛
  • لا تدعم PHP إعادة تعيين الوظائف ، لذلك لا يمكن إعادة التعيين (التغيير ، الإضافة) أو إزالة الوظيفة التي تم إنشاؤها ؛
  • قد يتم تعيين وظائف لهيئة المحلفين. وظيفة Tobto vyklichte ، وفقط في وقت لاحق - أسفل الكود وصف ، السعر ليس في خط الممارسة وليس عفو vyklich.

الوظائف التي تكمن في الاعتبار

يمكننا إنشاء (تعيين ووصف) وظيفة العقل البور. على سبيل المثال:

// استدعاء وظيفة sayHi ، يمكنك تسميتها في أي مكان / * هنا لا يمكن استدعاء وظيفة sayGoodbye ، لأولئك الذين لم يساءوا تفسير العقل بعد ولم يدخلوا في منتصف if * / if ($ apply) (الوظيفة sayGoodbye () (صدى "Goodbye!"
"; } } / * يمكن أن يقول المحور الآن وداعا viklikati * /
"; }

نتيجة:

І انظر الى المؤخرة:

/ * وماذا سيكون المحور مثل viklikati يقول وداعا هنا * /قل وداعا()؛ if ($ apply) (الوظيفة sayGoodbye () (صدى "Goodbye!"
"؛)) وظيفة sayHi () (صدى" مرحبًا بالجميع!
"; }

نتيجة:

حقًا ، أنا أمارس skilki ، بمجرد أن لم أسمع مثل هذا الشيء من قبل ، وكل إمكانيات اللغة مطلوبة في الشارع.

إدراج الوظيفة

وظيفة مقدمة - وظيفة كاملة ، يتم التعبير عنها في منتصف وظيفة أخرى. بعقب:

/ * لا يمكنك الاتصال بـ sayGoodbye هنا ، فلن تظهر القطع إلا بعد الاتصال بوظيفة sayHi * /قل مرحبا()؛ / * تسمى وظيفة sayHi ، يمكنك تسميتها في أي مكان تريد * / / * الآن يمكننا أن نقول وداعا viklikati * /قل وداعا()؛ وظيفة sayHi () (صدى "مرحبًا بالجميع!"
"؛ وظيفة sayGoodbye () (صدى" دعونا نستمر في ذلك الآن!
"; } }

حسنًا ، أعلم ، أثناء التجاوز الأول ، يشير مترجم PHP إلى ما يعرفه عن وصف وظيفة sayHi ، لكن لا تدخل منتصف الجسم ، فقط الاسم ، وإذا لم يدخل المترجم في منتصف قل مرحبًا يا جسد ، فليس من المهم وظيفة أخرى - قل وداعا.

كود دالي من Vikonovati ، mi viclika ، sayhi ، izhterpreterator PHP للذهاب إلى TILO FUILITY SAYHI ، Scho Viconati هناك انخفاض ، saygoodye.

يعيد Ale varto الاحترام للحظة أكثر دقة في الموقف إلى أعلى: تصبح دالة sayHi لمرة واحدة ، بحيث تصبح ممكنة مرة أخرى ، ثم سيتم استخدام PHP مرة أخرى لوظيفة sayGoodbye المحددة ، وفي PHP ليست كذلك من الممكن أن تعمل مثل هذا - لا يمكن إعادة تعريف الوظائف. حول م وحول هؤلاء ، كيف أقاتل ، كتبت مقالًا في المقدمة.

في PHP ، نادرًا ما يتم استخدام المزيد من الأوصاف ، وفي كثير من الأحيان يمكنك استخدام ، على سبيل المثال ، JavaScript.

نطاق الرؤية

PHP لها نطاقان بالضبط: عالميі محلي. تختلف برمجة حركة الجلد لمنطقة الرؤية. على سبيل المثال ، يحتوي C ++ على نطاقه (المحلي) للحلقات. PHP ، على أقل تقدير ، لها نطاق عالمي. لكننا اليوم نتحدث عن الوظائف.

وظائف PHP لها نطاق داخلي خاص بها (محلي) ، لذا فإن جميع التغييرات في منتصف الوظيفة تكون مرئية فقط في منتصف الوظيفة.

مرة أخرى ، مرة أخرى: كل ما يتم وضعه بواسطة الوظائف هو النطاق الخفيف ، كل ما هو في منتصف الوظائف هو النطاق المحلي. بعقب:

الجدات والاحترام والغذاء! ماذا ترى باقي التعليمات صدى اسم $؛ ?

مثلك يا باشيلي ، كان لدينا نوبتان اسم $، واحد في منتصف الوظيفة (النطاق المحلي) ، وإلا فقط في الكود (النطاق العام) ، يتم تعيين الباقي للتغيير اسم $بولو $ name = "رود سيرجي" ؛وإذا كانت هناك حجارة في منتصف الوظيفة ، فلن يكون هناك المزيد. كان النطاق العالمي للتخصيصات المتبقية اسم $ = "أندري" ؛نتيجة لذلك ، sho mi و vlasne و bachimo.

Tobto نفس التغييرات ، ولكن في مجالات مختلفة من الرؤية لا تتداخل بأي حال من الأحوال ولا تصب أحدهما على واحد.

اسمحوا لي أن أوضح النطاق مع القليل:

أثناء التجاوز الأول ، ينظر المترجم الفوري بسرعة فوق منطقة الرؤية الخفيفة ، ويتذكر التغييرات والوظائف ، لكنه لا يرى الرمز.

العودة إلى التغييرات العالمية من النطاق المحلي

ومع ذلك ، إذا كنا لا نزال بحاجة إلى عكس الوظيفة إلى اسم $ الأكثر متغيرًا في النطاق العالمي ، فلن يتم عكسها فحسب ، بل ستغيرها؟ لمن هناك 3 خيارات رئيسية. اختيار الكلمات الرئيسية الأولى عالمي:

"؛ اسم $ العالمي ؛ / * من الآن فصاعدًا يمكننا تغيير اسم $ العالمي * /$ name = "رود سيرجي" ؛ ) $ name = "Andriy" ؛ sayHi (اسم $) ؛ صدى اسم $؛ //؟

نتيجة:

Ale tsey way Maє ناقص ، إذا عدنا إلى التغيير العالمي اسم $لقد قضينا (أعدنا كتابة) التغيير المحلي اسم $.

طريق اخرأقسم للفوز مصفوفة PHP superglobal. تقوم مصفوفة PHP نفسها تلقائيًا بإجراء تغيير في الشكل ، كما فعلنا في النطاق العالمي. بعقب:

اسم $ = "أندري" ؛ // نفس الشيء$ GLOBALS ["name"] = "Andrey"؛

أب:

$ GLOBALS ["name"] = "Rud Sergiy"؛ ) اسم $ = "أندري" ؛ sayHi (اسم $) ؛ صدى اسم $؛ //؟

نتيجة نفس الشيء ، وهي المرة الأولى التي يتم فيها اختيار الكلمة الأساسية عالمي:

مرات قليلة فقط لم تعيد كتابة التغيير المحلي ، لتغييره اسم $في منتصف الوظيفة فقدها كبيرة ومكلفة "أندريه"، لكن لا "رود سيرجي".

الحجج العابرة للطلبات

الطريق الثالث- نقل عنوان Tse ( قوة) قابل للتغيير ، لكن تشي ليس معنى. جهود PHP ليست بعيدة جدًا ، من وجهة نظر لغات البرمجة الأخرى. تيم ليس أقل من ذلك ، سأخبرك بالطريقة الصحيحة الوحيدة لتمرير وسيطة إلى دالة ، والتي عادة ما تكون مدعومة في PHP 5.3 وما بعده. وطرق أخرى للتعامل مع الرسائل ، ولكن تم وضعها في PHP 5.2 والإصدارات الأقل ، ونتيجة لذلك ، أخطأ تجار التجزئة PHP أنفسهم ، لذلك دعونا لا نتحدث عنها.

إذن المحور ، من الصحيح تمرير وسيطة الطلب في PHP 5.3 ويمكن القيام بذلك على النحو التالي:

الوظيفة sayHi (& $ name) (

أضفنا علامة العطف (&) في وصف الوظيفة ذاته - هذا الرمز يعني أننا لا نقبل قيمة التغيير ، ولكن الرسالة (العنوان) على القيمة الموجودة في الذاكرة. تتيح لك الكتابة بلغة PHP إنشاء تغييرين يشيران إلى نفس القيمة. يعني Tse أنه عندما يتغير أحدهم ، تتغير الإهانات ، وتتحول الرائحة الكريهة إلى نفس المعنى في الذاكرة.

І نتيجة لذلك ، ربما:

// لا تقبل قيمة ، ولكن أرسل قيمةصدى "مرحبا". $ name. "!
$ name = "رود سيرجي" ؛ ) اسم $ = "أندري" ؛ sayHi (اسم $) ؛ صدى اسم $؛ //؟

نتيجة:

تغييرات ثابتة

دعنا نعرف هذا الموقف: نحن بحاجة إلى الاهتمام بعدد المرات التي تم الترحيب بنا فيها. يتزايد محور ما نقوم به:

++ c $ ؛ // زيادة الرقم بمقدار 1


نتيجة:

زمينا $ جلا تنس معناه ، سيتم إنشاؤه من جديد. نحن بحاجة إلى العمل من أجل التغيير المحلي لدينا $ جنسيت معناها بعد الوظيفة المنتصرة ، والتي من أجلها انتصرت الكلمة الأساسية ثابتة:

// lichilnik ، zrobili ثابتصدى "مرحبا". $ name. "!
++ c $ ؛ // زيادة الرقم بمقدار 1صدى "كل الترحيب". $ ج. مرة واحدة.


"؛) sayHi (" Rud Sergiy ") ؛ sayHi (" Andriy ") ؛ sayHi (" Dmitro ") ؛

نتيجة:

قيمة الدوران

الوظائف لها قيمة دوران سهلة الاستخدام. طالما أن الوظيفة هي استبدال ما تريد رؤيته على الشاشة ، فسوف تقوم بتغيير كل شيء وتراه لنا. ونحن بالفعل بعيدا virishuemo ، scho العمل معها. على سبيل المثال ، لنأخذ هذه الوظيفة ، سنأخذ مربع الرقم:

نتيجة:

يبدو أن استبدال الرؤية على الشاشة قلب نتيجة الرؤية للخارج. لأي فوز هو كلمة المرور العودة:

نتيجة:

الآن يمكننا الفوز بطرق مختلفة:

// عرض النتيجةصدى صوت "
عدد دولارات = getSquare (5) ؛ صدى $ الأسطوانات ؛

نتيجة:

أوجه احترامك لأولئك الذين لديهم الكلمة الأساسية يعودلا تقوم فقط بتدوير القيمة ، ولكن في الواقع تقوم بالتكرار على وظائف الروبوت ، وبالتالي فإن الكود بأكمله ، والذي تم سرده أدناه للكلمة الرئيسية يعودلا توجد طريقة للقيام بذلك. بمعنى آخر ، يعمل أيضًا إرجاع الوظائف استراحةللدورات:

صدى "قبلي ، PHP لم تفعل :(" ؛) صدى getSquare (5) ؛ // عرض النتيجةصدى صوت "
عدد دولارات = getSquare (5) ؛ // اضبط النتيجة للتغييرصدى $ الأسطوانات ؛ // تغيير Viveli إلى الشاشة

نتيجة:

توبتو يعود- خروج كامل من الوظيفة. يمكن أن يكون Yogo منتصرا وبدون معنى ، ما يجب أن يتحول ، فقط من أجل الخروج.

دالة تكرارية

الوظيفة العودية هي وظيفة تستدعي نفسها. نادرًا ما تفوز العودية وتعتبر عملية توفير (كاملة) للموارد. Ale buvay ، العودية scho هي الخيار الأبسط والأكثر وضوحًا. بعقب:

"؛ إذا ($ number< 20){ // بحيث أصبحت العودية غير مقطوعة countPlease (++ $ number) ؛ // استدعاء دالة countPlease لنفسها) countPlease (1) ؛

نتيجة:

إذا كنت تعرف كيفية الاستغناء عن العودية ، فمن الأفضل القيام بذلك بهذه الطريقة.

تصنيف Suvora في PHP (النوع المحدد)

في PHP ، تم تقليص التفاصيل إلى نوع معين ، يمكننا تحديد أسمائه ، والنوع الذي يمكن قبوله بواسطة الوظيفة (يطلق عليه اكتب تلميح):

نتيجة:

خطأ فادح قابل للتوصيل: الوسيطة 1 تم تمريرها إلى countPlease () مصفوفة استدعاء ، عدد صحيح محدد ، مسمى /home/index.php في السطر 7 ومُعرّف في /home/index.php في السطر 3

اعذرنا ، على ما يبدو ، أن الوظيفة تقبل مصفوفة ، ويتم تمرير الرقم إلينا. لسوء الحظ ، في الوقت الحالي يمكننا تحديد نوع (المصفوفة) فقط ، ولكن منذ PHP 5.4 أضفنا خيارًا مثل قابل للاستدعاء:

قابل للاستدعاءتحقق مما إذا كان يمكن استدعاء القيمة التي يتم نقلها كوظيفة. يمكن أن يكون Callable مثل اسم دالة ، فلنقم بتعيين تغيير في الصف ، لذلك فهو كائن واسم للطريقة التي تستدعيها. لكن دعنا نتحدث عن الكائنات والأساليب لاحقًا (لقد طورت البرمجة الموجهة للكائنات) ، لكنك تعرف بالفعل الوظائف. لا أستطيع أن أريكم نتيجة العمل ، لأن لدي PHP 5.3 في نفس الوقت ، لكن vin buv bi:

استدعاء دالة getEcho

حجج Vikoristannya في تغيير الحياة

وأخيرًا ، هناك فارق بسيط آخر نادرًا ما ينتصر. حدد الموقف ، نقوم بتمرير الحجج إلى الوظيفة ، على الرغم من عدم وصف الوظائف ، على سبيل المثال:

نتيجة:

مثل الباشيت ، لا يوجد عفو ، لكن حججنا لا يتم تناقلها في أي مكان. لكن هذا لا يعني أن الروائح الكريهة قد نشأت - لا تزال الروائح الكريهة تنتقل إلى الوظيفة ويمكننا تعديلها ، حيث يتم استخدام وظائف PHP:

func_num_args ()- قم بتدوير عدد الوسائط التي تم تمريرها إلى الوظيفة
func_get_arg (رقم التسلسل)- تدوير العنصر من قائمة الوسائط
func_get_args ()- تدوير المصفوفة لتغيير وسيطات الوظيفة

"؛ echo func_get_arg (0)؛) $ age = 22؛ getEcho (" Rud Sergiy "، $ age)؛

نتيجة:

فيسنوفوك

مقال اليوم هو الأخير وراء موضوع وظائف PHP. الآن يمكنك أن تكون مصدر إلهام لكل ما لديك من معلومات بقدر ما تستطيع ، حتى تتمكن بجرأة من إتقان الوظائف التي تناسب احتياجاتك.

على سبيل المثال ، إذا كان لدى شخص ما يد ، ولكن لا توجد أفكار حول كيفية القيام بذلك - أفضل طريقة لكتابة وظائف PHP جاهزة (قيد التقدم) ، على سبيل المثال ، يمكنك كتابة دالة count () في يدك ، أيا كان.

شكرا لكم جميعا على احترامكم ونراكم في المرة القادمة! حتى لو لم تفهم ، ضع أسئلتك بجرأة في التعليقات!

مقالات مماثلة