إذا كان البرنامج الفرعي (subroutine) عبارة عن صندوق أسود، فإن المُعامِلات (parameter) هي ببساطة طريقة لتمرير بعض المعلومات إليه من العالم الخارجي، لذا فإنها تُعدّ جزءًا من واجهة (interface) البرنامج الفرعي، وتَسمَح لك بتَخْصيص طريقة عمل البرنامج الفرعي للتَكيُف مع موقف محدد. على سبيل المثال، إ…
التصريح عن فضاء اسم يُصرَّح عن فضاء الاسم كالتالي: للتصريح عن فضاء الاسم MyProject نكتب الشيفرة التالية: namespace MyProject; للتصريح عن فضاء اسم متداخل نكتب: namespace MyProject\Security\Cryptography; للتصريح عن فضاء اسم مع أقواس مغلقة نكتب: namespace MyProject …
تَسمَح بعض اللغات البرمجية -بل غالبيتها في الواقع- بتعريف البرامج الفرعية (subroutines) بصورة مستقلة خارج أي صَنْف، لكن تختلف لغة الجافا عنهم في تلك النقطة، حيث لابُدّ أن يُعرَّف أيّ برنامج فرعي (subroutine) بلغة الجافا ضِمْن صَنْف (class). الهدف من الصَنْف عمومًا هو تجميع البرامج الفرعية والمُتَغ…
تسمح استعلامات الوسائط (media queries) بتطبيق أنماط CSS مختلفة بناءً على نوع جهاز العرض (شاشة أو طابعة أو غير ذلك) وحجمه، فيُحدَّد نوع الجهاز عن طريق نوع الوسط media type، بينما تُحدد مواصفات الجهاز الأخرى مثل اللون وأبعاد شاشة العرض باستخدام خصائص الوسط media features. الصيغة العامة لكتابة وس…
الجلسات خيارات session_start()‎ يمكننا تمرير مصفوفة من خيارات الملف php.ini المعتمدة على الجلسة (session) إلى الدالة session_start، مثال: تقدّم أيضًا هذه الميزة إعداد php.ini جديد يسمى lazy_write قيمته الافتراضية true ويعني أن بيانات الجلسة يُعاد كتابتها فقط إذا تغيرت. قفل الجلس…
تستطيع عمومًا أن تقتطع مجموعة من التَعْليمَات (instructions) المسئولة عن إنجاز مُهِمّة واحدة مُحدَّدة، وتُضمِّنها معًا تحت اسم معين، ومِنْ ثَمَّ، تستطيع التَعامُل مع تلك المُهِمّة كوحدة واحدة مهما بَلغت درجة تعقيدها، يُطلق على تلك الوحدات اسم البرنامج الفرعي (subroutine). والآن، لَمْ يَعُدْ هناك أ…
الانتقالات عبر الخاصية transition الخاصية الوصف transition-property تُستعمل لتحديد خصائص CSS التي ستخضع لتأثير الانتقال. transition-duration تُحدِّد الزمن الذي سيستغرقه تأثير الانتقال للوصول إلى القيمة النهائية للخاصية، والقيم…
الدالة serialize()‎ في PHP لها الشكل العام التالي: serialize ( mixed $value ) يعبّر المعامل value عن القيمة التي نريد سَلسَلتها، تعالج الدالة serialize()‎ كل الأنواع، عدا الأنواع الموردية (resource-type)، كما يمكنك سَلسَلة المصفوفات التي تحتوي مراجع إلى نفسها، المراجع الدائرية داخل المصفوفة/…
لقد تَعلَّمت، على مدار الفصلين السابقين، نوعية البرمجة المُستخدَمة أثناء كتابة برنامج فرعي وحيد (subroutine)، فيما أطلقنا عليه اسم "البرمجة في نطاق ضيق". سنُركز أكثر خلال الفصول المُتبقّية من الكتاب على بناء البرامج ضِمْن نطاق أوسع، ولكن ما يزال ما تَعلَّمته حتى الآن هو البذرة الأساسية والضرورية ل…
تستخدم الأصناف والكائنات لجعل الشيفرة أكثر فعالية وأقل تكرارًا عن طريق تجميع الوظائف المتشابهة. يستخدم الصنف لتعريف الوظائف وبنى المعطيات المستخدمة لإنشاء كائنات، ثم تُنشأ الكائنات باستخدام البنية المعرّفة مسبقًا. ثوابت الصنف توفر ثوابت الصنف (Class constants) آلية لحمل القيم الثابتة ف…
تعويم نص حول صورة من أبسط استعمالات خاصية float تعويم نص حول صورة، كما هو موضح بالمثال التالي: ملف HTML Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet.…
تناولنا، بالأقسام السابقة من هذا الفصل، جميع بُنَى التحكُّم (control structures) المُدعَّمة بلغة الجافا، ولكن قبل الانتقال إلى الفصل التالي، سنُلقِي نظرة مبدئية على موضوعين إِضافيين مُرتبطين نوعًا ما ببُنَى التحكُّم. سنُلقِي في هذا القسم نظرة خاطفة على المصفوفات (arrays)، والتي تُعدّ واحدة من …
الدالة json_encode تأخذ المعاملات التالية: المعامل تفاصيل value القيمة المطلوب ترميزها، يمكن أن تكون من أي نوع عدا الموارد ويجب ترميز جميع بيانات السّلاسل UTF-8 النصيّة بصيغة options خيارات على شكل قناع بتي وهي: …
المُرشِّحات (Filters) تُستخدم الخاصية filter لتطبيق تأثيرات مثل تغيير اللون وتأثير الضبابية على الصور والخلفيات والإطارات. الدالة الوصف ()blur تُطَبِق تأثير الضبابية على الصورة المُحدَّدة. (brightness(x تُغيِّر سطوع الصورة…
استيفاء السلسلة النصية يمكنك استخدام الاستيفاء لتستوفي (تُدرج) متغير في سلسلة نصية (string)، يعمل الاستيفاء مع السلاسل النصية ذات الاقتباس المزدوج وصياغة heredoc فقط. $name = 'Joel'; // Joel بالاسم $name سيُستبدل المتغير echo "Hello $name, Nice to see you."; // "Hello Joel, Nice to see yo…
بالإضافة إلى بُنَى التحكُّم (control structures) المُستخدَمة لتَحْدِيد مَسار التحكُّم الطبيعي (flow of control) بالبرنامج، تُوفِّر لغة الجافا طريقة للتَعامُل مع الحالات الاِعتراضية (exceptional cases)، والتي يُمكِنها تَغْيِير مَسار التحكُّم الطبيعي. فمثلًا، يُعدّ إنهاء (terminate) البرنامج وما…
قائمة الوسطاء ذات الطول المتغير النسخة 5.6 وما بعدها: قدم الإصدار PHP 5.6 لائحة وسطاء ذات طول متغير (وتعرف أيضًا باسم العدد المتغيّر للوسائط (varargs) أو الوسائط المتغيّرة) بإضافة ... قبل اسم الوسيط للإشارة إلى أنّ المعامل متغيّر، أي أنّها مصفوفة فيها كل المعاملات بدءًا من هذا الوسيط. f…
تُمكنك CSS من وضع ألوان، أو تدرجات لونية، أو صور كخلفيات للعناصر، والتحكم في حجمها، وموضعها، وعدد مرات تكرارها. إضافة الألوان كخلفيات للعناصر تُستعمل الخاصية background-color لإضافة خلفية بلون معين للعنصر، وتقبل القيم transparent، و inherit، و initial أيضًا، ويمكن تطبيقها على العناصر و الع…
حالة أكثر تعقيدًا كانت الحالة التي صادفتها في تطبيقنا السابق بسيطة لكونها متعلقة بعدد صحيح واحد. لكن ما العمل إن تطلب أحد التطبيقات التعامل مع حالة أكثر تعقيدًا؟ إنّ أكثر الطرق سهولة في إنجاز ذلك، هو استخدام دالة useState عدة مرات بحيث تتجزأ الحالة الكلية إلى "قطع" صغيرة. سنبني في الشيفرة التا…
تتوفَّر تَعْليمَتين للتَفْرِيع (branching statements) بلغة الجافا، تناولنا تَعْليمَة if بالقسم السابق، والآن سننتقل إلى تَعْليمَة التَفْرِيع الثانية switch، والتي يُعدّ اِستخدَامها أقل شيوعًا من تَعْليمَة if، ومع ذلك فهي تكون مفيدة أحيانًا للتعبير عن نوع معين من التَفْرِيع المُتعدِّد (multiway bra…