نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

Python/types

تقدّم هذه الوحدة عددًا من الدوال المساعدة لإنشاء أنواع بيانات جديدة بصورة ديناميكية، إضافة إلى أنّها تعرّف أسماءً لبعض أنواع الكائنات التي يستخدمها مفسّر بايثون المعياري، ولكنّها ليست كائنات داخلية مثل int أو str، إلى جانب أنّ هذه الوحدة تقدم بعض الأصناف والدوال المساعدة الخاصة ببعض الأنواع، والتي لا تعدّ أساسية بما يكفي لتصبح أصنافًا ودوالّ داخلية. إنشاء الأنواع ديناميكيًا تقدّم هذه الوحدة ثلاث دوالّ تساعد في إنشاء أنواع البيانات ديناميكيًا: الدالة types.new_class()‎‎ تنشئ هذه الدالة ديناميكيًا كائن صنف باستخدام ...

الصنف ‎:first-of-type

الصنف الزائف ‎:first-of-type في CSS (أي pseudo-class) يُمثِّل أوّل عنصر من نوعه في مجموعة من العناصر الأخوة. p:first-of-type { color: red; } ملاحظة: عندما عُرِّف هذا الصنف كان من الضروري أن يملك العنصر أبًا، لكن بدءًا من مواصفة Selectors Level 4 لم يعد ذلك ضروريًا. الشكل العام لهذا المحدد: :first-of-type أمثلة لاحظ كيف ستُنسَّق أوّل فقرة <p> من بين العناصر الأخوة: <h2>الترويسة</h2> <p>النص 1</p> <p>النص 2</p> شيفرة CSS: p:first-of-type { color: red; font-style: italic; } لاحظ كيف يمكن استخدام هذا المُحدِّد على العناصر المتشعبة، ...

الصنف :nth-of-type()

الصنف الزائف ‎:nth-of-type()‎ في CSS (أي pseudo-class) يُطابِق عنصرًا أو أكثر من نوعٍ معيّن بناءً على موقعه ضمن مجموعة من العناصر الأخوة (siblings). هذا المُحدِّد يُحدِّد جميع عناصر <p> التي ترتيبها هو الرابع ضمن أي مجموعة من الأخوة: p:nth-of-type(4n) { color: lime; } يقبل هذا الصنف الزائف وسيطًا واحدًا يمُثِّل نمط مُطابقة العناصر: الكلمة المحجوزة odd تُمثِّل العناصر التي يكون ترتيبها بين إخوتها فرديًا، أي 1 و 3 و 5 ...إلخ. ويبدأ العد من البداية إلى النهاية. الكلمة المحجوزة even تُمثِّل ...

الصنف ‎:last-of-type

الصنف الزائف ‎:last-of-type في CSS (أي pseudo-class) يُمثِّل آخر عنصر من نوعه في مجموعة من العناصر الأخوة. p:last-of-type { color: lime; } ملاحظة: عندما عُرِّف هذا الصنف كان من الضروري أن يملك العنصر أبًا، لكن بدءًا من مواصفة Selectors Level 4 لم يعد ذلك ضروريًا. الشكل العام لهذا المحدد: :last-of-type أمثلة لاحظ كيف ستُنسَّق آخر فقرة <p> من بين العناصر الأخوة: <h2>الترويسة</h2> <p>النص 1</p> <p>النص 2</p> شيفرة CSS: p:last-of-type { color: red; font-style: italic; } لاحظ كيف يمكن استخدام هذا المُحدِّد على العناصر المتشعبة، ...

الدالة type()‎ في بايثون

تعيد الدّالة type()‎ نوع الكائن المُعطى إن مُرّر مُعامل واحد لها. وتعيد كائن نوعٍ (type object) جديد إن مُرّرت لها ثلاثة مُعاملات. البنية العامة type(object) type(name, bases, dict) المعاملات تقبل الدّالة type()‎ إمّا مُعاملًا واحدًا فقط، أو ثلاثة مُعاملات كما هو واضح في البنية العامّة أعلاه. عند استدعائها بمُعامل واحد فقط، ستُعيد الدّالة نوع الكائن المُمرّر. أمّا عند الاستدعاء بثلاثة مُعاملات، فسيُعاد كائن نوعٍ جديد. وهو طريقة ديناميكيّة لإنشاء الأصناف كبديل للجملة class. object عند استدعائها بمُعامل واحد فقط، يُمثّل هذا ...

العوامل في PHP

يأخذ العامل (operator) قيمة واحدة أو أكثر (أو تعابير حسب اصطلاحات البرمجة) ويعطي قيمة أخرى (بحيث تتحول البنية نفسها إلى تعبير). يمكن تصنيف العوامل بحسب عدد القيم التي تأخذها، فالعوامل الأحادية Uanry تأخذ قيمة واحدة فقط مثل العامل (!) (معامل النفي المنطقي) أو (++) (معامل الزيادة). أما العوامل الثنائية فتأخذ قيمتين، وخير مثال عليها هو العوامل الحسابية المعروفة (+) الجمع، و (-) الطرح، إضافة إلى غالبية العوامل التي تقدّمها لغة PHP. وأخيرًا هناك معامل ثلاثي وحيد وهو ? : ويأخذ قيمًا ثلاثة، ...

الدالة strnatcmp()‎ في PHP

(PHP 4, PHP 5, PHP 7) توازن الدالة strnatcmp()‎ بين سلسلتين نصيَّتين (strings) مع تحسُّس حالة الأحرف (كبيرة أو صغيرة) وذلك باستعمال خوارزميَّة الترتيب الطبيعي (natural order algorithm). الوصف int strnatcmp ( string $str1 , string $str2 ) توازن هذه الدالة بين السلسلة النصيَّة str1 والسلسلة النصيَّة str2 باستعمال خوارزميَّة الترتيب الطبيعي مع تحسُّس حال الأحرف. تُرتِّب هذه الخوارزميَّة السلاسل النصيَّة التي تحوي أحرفًا وأرقامًا بالطريقة ذاتها التي يُرتِّب بها البشر (لهذا السبب سميت "الترتيب الطبيعي") ثمَّ تبدأ عمليَّة الموازنة. المعاملات ...

الدالة strnatcmp()‎ في PHP

(PHP 4, PHP 5, PHP 7) توازن الدالة strnatcmp()‎ بين سلسلتين نصيَّتين (strings) مع تحسُّس حالة الأحرف (كبيرة أو صغيرة) وذلك باستعمال خوارزميَّة الترتيب الطبيعي (natural order algorithm). الوصف int strnatcmp ( string $str1 , string $str2 ) توازن هذه الدالة بين السلسلة النصيَّة str1 والسلسلة النصيَّة str2 باستعمال خوارزميَّة الترتيب الطبيعي مع تحسُّس حال الأحرف. تُرتِّب هذه الخوارزميَّة السلاسل النصيَّة التي تحوي أحرفًا وأرقامًا بالطريقة ذاتها التي يُرتِّب بها البشر (لهذا السبب سميت "الترتيب الطبيعي") ثمَّ تبدأ عمليَّة الموازنة. المعاملات ...

الصنف ‎:nth-last-of-type()‎

الصنف الزائف ‎:nth-last-of-type()‎ في CSS (أي pseudo-class) يُطابِق عنصرًا أو أكثر من نوعٍ معيّن بناءً على موقعه ضمن مجموعة من العناصر الأخوة (siblings). بدءًا من النهاية إلى البداية. هذا المُحدِّد يُحدِّد جميع عناصر <p> التي ترتيبها هو الرابع ضمن أي مجموعة من الأخوة، والعد يبدأ من النهاية: p:nth-last-of-type(4n) { color: lime; } ملاحظة: هذا الصنف الزائف يماثل الصنف ‎:nth-of-type إلا أنه يبدأ عدّ العناصر من النهاية إلى البداية، عكس الصنف ‎:nth-of-type الذي يبدأ العد من البداية إلى النهاية. رجع صفحة الصنف ...

الخاصية list-style-type

الخاصية list-style-type في CSS تُحدِّد شكل الإشارة إلى عناصر القائمة. بطاقة الخاصية القيمة الابتدائية disc تُطبَّق على عناصر القوائم. قابلة للوراثة نعم قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* قائمة مختصرة بأنواع الأشكال */ list-style-type: disc; list-style-type: circle; list-style-type: square; list-style-type: decimal; list-style-type: arabic-indic; /* <string> */ list-style-type: '-'; /* @counter-style rule */ list-style-type: custom-counter-style; list-style-type: none; /* القيم العامة */ list-style-type: inherit; list-style-type: initial; list-style-type: unset; ملاحظة: هذه الخاصية ستُطبَّق على عناصر القوائم، أي العناصر التي تكون قيمة الخاصية display فيها تساوي list-item، وهذا يتضمن العنصر <li> افتراضيًا؛ لكن لاحظ أنَّ قيمة ...

CSS/Topics/Data Type

نوع البيانات الوصف angle نوع البيانات <angle> في CSS يستعمل لتمثيل القيم الزاويّة بالدرجات (degrees) أو بالغراد (grad) أو بالراديان (radians) أو بالدورات (turns)، ويمكن استخدام هذا النوع في التدرجات اللونية <gradient> وبعض دوالtransform. blend-mode نوع البيانات <blend-mode> في CSS يستعمل لوصف كيف يجب أن تمتزج الألوان عند تداخل طبقات الخلفات مع بعضها بعضًا. فلكل بكسل من بكسلات الطبقة التي طُبِّق عليها نمط الامتزاج، فسيأخذ اللون من الخلفية ومن الأمامية، وستُجرى عملية حسابية عليه، ويُعاد لونٌ جديدٌ سيستخدم مكان تداخل الطبقات. color value نوع البيانات <color> في CSS ...

المحدد ‎‎‎:nth-of-type()‎‎ في jQuery

المحدد ()‎:nth-of-type الوصف يختار هذا المحدِّد عناصر ذات موقع محدد ضمن مجموعة من العناصر الأخوة (أي جميعها أبناء لعناصر أخرى) التي لها اسم العنصر ذاته. jQuery( ":nth-of-type(index/even/odd/equation)" )‎ أُضيف مع الإصدار: 1.9. index فهرس العنصر الابن المراد مطابقته، ويبدأ العد من القيمة 1 بدءًا من بداية المجموعة (أي فهرس أول عنصر في المجموعة هو 1). ويمكن استعمال الكلمة المحجوزة even التي تُمثِّل العناصر التي يكون ترتيبها بين إخوتها فرديًا، أو الكلمة المحجوزة odd التي تُمثِّل العناصر التي يكون ترتيبها بين ...

الدالة sort()‎ في Kotlin

ترتِّب الدالة sort()‎ المصفوفة أو القائمة المتغيرة (MutableList) التي استُدعيت معها تصاعديًّا. البنية العامة إن لم يمرَّر أي وسيط إلى الدالة sort()‎، فسترتِّب جميع عناصر المصفوفة أو القائمة المتغيرة التي استدعيت معها: fun IntArray.sort() fun LongArray.sort() fun ByteArray.sort() fun ShortArray.sort() fun DoubleArray.sort() fun FloatArray.sort() fun CharArray.sort() inline fun <T : Comparable<T>> Array<out T>.sort() (source) fun <T : Comparable<T>> MutableList<T>.sort() أمَّا إن استدعيت الدالة sort()‎ مع تمرير وسيطين عددين، فسترتِّب المجال الذي يحدده هذين الوسيطين داخل المصفوفة التي استدعيت معها (بيئة التشغيل: JVM): fun <T> ...

معاملات المقارنة في JavaScript

تملك JavaScript نوعين من المقارنة: نوع المقارنة الصارم (strict comparison) مثل المعامل === الذي تكون نتيجة المقارنة معه هي true إذا كانت كلا القيمتان من النوع نفسه ومحتوياتهما متطابقة؛ ونوع المقارنة الذي يحوِّل أنواع البيانات لتتوافق مع بعضها (type–converting comparison) مثل المعامل == الذي يحوِّل القيمتين إلى النوع نفسه قبل إجراء عملية المقارنة؛ أما لعمليات المقارنة النسبية (مثل ‎>=‎) فستحوَّل القيم المُقارَنة إلى قيم أوليّة ثم إلى نوع البيانات نفسه وذلك قبل إجراء عملية المقارنة. تُقارَن السلاسل النصية بناءً على ...

المحدد ‎‎‎:nth-last-of-type()‎‎ في jQuery

المحدد ()‎:nth-last-of-type الوصف يختار هذا المحدِّد عناصر ذات موقع محدَّد ضمن مجموعة من العناصر الأخوة (أي جميعها أبناء لعناصر أخرى) التي لها اسم العنصر ذاته وذلك بدءًا من نهاية المجموعة وحتى بدايتها. jQuery( ":nth-last-of-type(index/even/odd/equation)" )‎ أُضيف مع الإصدار: 1.9. index فهرس العنصر الابن المراد مطابقته، ويبدأ العد من القيمة 1 بدءًا من نهاية المجموعة (أي فهرس آخر عنصر في المجموعة هو 1). ويمكن استعمال الكلمة المحجوزة even التي تُمثِّل العناصر التي يكون ترتيبها بين إخوتها فرديًا، أو الكلمة المحجوزة odd ...

أنواع البيانات (Data Types) في Kotlin

إن كلَّ عنصرٍ في Kotlin يعد كائنًا إذ يمكن استدعاء الدوال (member functions) والخاصّيّات (properties) عبر أي متغيِّر (variable)، ولبعض الأنواع تمثيلها الداخلي الخاص بها؛ فعلى سبيل المثال تُمثَّل الأعداد والمحارف والقيم المنطقية (boolean) كقيمٍ أساسيّةٍ أثناء التشغيل (runtime) ولكنها بالنسبة للمستخدم مجرّد أصنافٍ عادية، وتناقش هذه الصفحة الأنواع الرئيسيّة للبيانات في Kotlin وهي: الأعداد، والمحارف، والقيم المنطقية (boolean)، والمصفوفات، والسلاسل النصيّة. الأعداد (Numbers) تتعامل لغة Kotlin مع البيانات العدديّة بطريقةٍ مماثلةٍ للغة Java ولكن بفوارق بسيطة، فلا تدعم مثلًا ...

الدالة min()‎ في PHP

(PHP 4, PHP 5, PHP 7) تبحث الدالة min()‎ عن أصغر قيمة من بين القيم الممرَّرة إليها ثمَّ تعيدها. الوصف mixed min ( array $values ) mixed min ( mixed $value1 , mixed $value2 [, mixed $... ] ) إن مُرِّر إلى هذه الدالة معاملٌ وحيدٌ وكان هذا المعامل مصفوفةً، فستعيد أصغر قيمة من قيم عناصر تلك المصفوفة. أمَّا إن مرِّر إلى الدالة قيمتان عدديتان أو أكثر، فستعيد القيمة الأصغر من تلك القيم الممرَّرة إليها. ملاحظة: ستُوازن القيم ذات الأنواع المختلفة وفقًا ...

الدالة max()‎ في PHP

(PHP 4, PHP 5, PHP 7) تبحث الدالة max()‎ عن أكبر قيمة من بين القيم الممرَّرة إليها ثمَّ تعيدها. الوصف mixed max ( array $values ) mixed max ( mixed $value1 , mixed $value2 [, mixed $... ] ) إن مُرِّر إلى هذه الدالة معاملٌ وحيدٌ وكان هذا المعامل مصفوفةً، فستعيد أكبر قيمة من قيم عناصر تلك المصفوفة. أمَّا إن مرِّر إلى الدالة قيمتان عدديتان أو أكثر، فستعيد القيمة الأكبر من تلك القيم الممرَّرة إليها. ملاحظة: ستُوازن القيم ذات الأنواع المختلفة وفقًا ...

الدالة max()‎ في PHP

(PHP 4, PHP 5, PHP 7) تبحث الدالة max()‎ عن أكبر قيمة من بين القيم الممرَّرة إليها ثمَّ تعيدها. الوصف mixed max ( array $values ) mixed max ( mixed $value1 , mixed $value2 [, mixed $... ] ) إن مُرِّر إلى هذه الدالة معاملٌ وحيدٌ وكان هذا المعامل مصفوفةً، فستعيد أكبر قيمة من قيم عناصر تلك المصفوفة. أمَّا إن مرِّر إلى الدالة قيمتان عدديتان أو أكثر، فستعيد القيمة الأكبر من تلك القيم الممرَّرة إليها. ملاحظة: ستُوازن القيم ذات الأنواع المختلفة وفقًا ...

الدالة min()‎ في PHP

(PHP 4, PHP 5, PHP 7) تبحث الدالة min()‎ عن أصغر قيمة من بين القيم الممرَّرة إليها ثمَّ تعيدها. الوصف mixed min ( array $values ) mixed min ( mixed $value1 , mixed $value2 [, mixed $... ] ) إن مُرِّر إلى هذه الدالة معاملٌ وحيدٌ وكان هذا المعامل مصفوفةً، فستعيد أصغر قيمة من قيم عناصر تلك المصفوفة. أمَّا إن مرِّر إلى الدالة قيمتان عدديتان أو أكثر، فستعيد القيمة الأصغر من تلك القيم الممرَّرة إليها. ملاحظة: ستُوازن القيم ذات الأنواع المختلفة وفقًا ...

الدالة settype()‎ في PHP

(PHP 4, PHP 5, PHP 7) تُعيِّن الدالة settype()‎‎‎‎‎ نوع المتغيّر. الوصف bool settype ( mixed &$var , string $type ) تُعيِّن نوع المتغيّر var إلى النّوع type. المعاملات var المتغيّر المطلوب تغيير نوعه. type القيم المُمكنة للنوع هي: "boolean" أو "bool": قيمة منطقية. "integer" أو "int": عدد صحيح. "float" أو "double": عدد عشري. "string": سلسلة نصّيّة. "array": مصفوفة. "object": كائن. "null": عَدَم. القيم المعادة تُعيد القيمة TRUE عند النّجاح، أو FALSE عند الفشل. أمثلة المثال 1: مثال على الدالة settype()‎ ...

الوحدة functools‎ في بايثون

تُقدّم الوحدة functools دوال عاليّة الرّتبة (higher-order functions)، وهي دوال تستقبل دوالا أخرى، تُغيّرها، أو تُعيد دوال أخرى. وعلى العموم، يُمكن لأيّ كائن قابل للاستدعاء أن يُعامل مُعاملة الدّالة عند استخدام هذه الوحدة. تُعرّف الوحدة functools الدّوال التّاليّة: functools.cmp_to_key()‎ تُحوّل دالّةَ مُقارنة (comparison function) إلى دالّة مفتاح (key function). functools.partial()‎ تُستعمل لإنشاء دالّة جزئيّة من دالّة بتمرير قيم افتراضيّة ثابتة لها. functools.reduce()‎ تُطبّق دالّةً تأخذ مُعاملين بتراكب لعناصر الكائن القابل للتّكرار المُعطى، من اليسار إلى اليمين لتخفيض العناصر إلى قيمة ...

أنواع البيانات في PHP

لا يعيّن المبرمج نوع المتغير عادةً، بل تُعيِّنُه لغة PHP أثناء التنفيذ بالاعتماد على محتوى المتغير المستخدم. ملاحظة: استخدم دالة var_dump()‎ للتحقق من نوع وقيمة تعبير معين، واستخدم الدالة gettype()‎ للحصول على نوع المتغير عند الحاجة لغرض التنقيح، وللتأكد من نوع المتغير فاستخدم مجموعة دوال is_type وهذه بعض الأمثلة عنها: <?php $a_bool = TRUE; // boolean $a_str = "foo"; // string $a_str2 = 'foo'; // string $an_int = 12; // integer echo gettype($a_bool); // الناتج: ...

التسمية البديلة للأنواع (Type aliases) في لغة Kotlin

تدعم لغة Kotlin ميّزة التسمية البديلة للأنواع الموجودة للبيانات، وخاصّة إن كان اسم النوع طويلًا فيُستعاض عنه باسمٍ أقصرٍ ويُستخدَم الاسم الجديد في كتابة الشيفرات؛ فمن المفيد مثلًا تسمية الأنواع المُعمّمة (generics) بأسماء أقصرٍ، مثل الشيفرة الآتية المُستخدَمة لتسمية أنواع المجموعات (collections): typealias NodeSet = Set<Network.Node> typealias FileTable<K> = MutableMap<K, MutableList<File>> وبالإمكان أيضًا تسمية الأنواع المختلفة للدوال، مثل: typealias MyHandler = (Int, String, Any) -> Unit typealias Predicate<T> = (T) -> Boolean وكذلك الأمر بالنسبة للأصناف الداخليّة (inner classes) والمتداخلة (nested classes)، مثل: class ...

أشباه الأنواع في PHP

أشباه الأنواع هي كلمات مفتاحيَّة مستخدمة في توثيق PHP لتحديد الأنواع أو القيم التي يمكن أن يمتلكها المعامل ولا يمكن استخدامها في الشيفرات البرمجية. مختلط – mixed يعني هذا أن المعامل يقبل العديد من الأنواع -وليس بالضرورة جميعها-. على سبيل المثال الدالة gettype()‎ ستقبل جميع أنواع المتغيرات، في حين أن الدالة str_replace()‎ ستقبل السلاسل النصية والمصفوفات. رقم – Number يشير Number إلى أن المعامل يمكن أن يكون عددًا صحيحًا أو عددًا عشريًا. رد النداء – callback استخدم هذا في التوثيق ...

أشباه الأنواع في PHP

أشباه الأنواع هي كلمات مفتاحيَّة مستخدمة في توثيق PHP لتحديد الأنواع أو القيم التي يمكن أن يمتلكها المعامل ولا يمكن استخدامها في الشيفرات البرمجية. مختلط – mixed يعني هذا أن المعامل يقبل العديد من الأنواع -وليس بالضرورة جميعها-. على سبيل المثال الدالة gettype()‎ ستقبل جميع أنواع المتغيرات، في حين أن الدالة str_replace()‎ ستقبل السلاسل النصية والمصفوفات. رقم – Number يشير Number إلى أن المعامل يمكن أن يكون عددًا صحيحًا أو عددًا عشريًا. رد النداء – callback استخدم هذا في التوثيق ...

أشباه الأنواع في PHP

أشباه الأنواع هي كلمات مفتاحيَّة مستخدمة في توثيق PHP لتحديد الأنواع أو القيم التي يمكن أن يمتلكها المعامل ولا يمكن استخدامها في الشيفرات البرمجية. مختلط – mixed يعني هذا أن المعامل يقبل العديد من الأنواع -وليس بالضرورة جميعها-. على سبيل المثال الدالة gettype()‎ ستقبل جميع أنواع المتغيرات، في حين أن الدالة str_replace()‎ ستقبل السلاسل النصية والمصفوفات. رقم – Number يشير Number إلى أن المعامل يمكن أن يكون عددًا صحيحًا أو عددًا عشريًا. رد النداء – callback استخدم هذا في التوثيق ...

PHP/Topics

الضبط كيفية ضبط لغة PHP عبر مختلف أنواع ملفات الضبط، وطرائق تعديلها. بنية اللغة تبيان أنواع وسوم لغة PHP، وطريقة دمجها مع HTML، وشرح بعض خصائصها البنيوية (ومن بينها التعليقات). أنواع البيانات لا يعيّن المبرمج نوع المتغير عادةً، بل تُعيِّنُه لغة PHP أثناء التنفيذ بالاعتماد على محتوى المتغير المستخدم. القيم المنطقية (boolean) القيم المنطقية (boolean) من أبسط الأنواع، فالتعبير المنطقي يُعبِّر عن صحّة تعبيرٍ ما، فإما أن تكون قيمة التعبير صحيحةً TRUE أو خطأً FALSE. الأعداد الصحيحة (integer) العدد الصحيح هو عدد من ...

التعامل مع الأنواع في PHP

لا تطلب PHP (أو تدعم) التصريح عن نوع المتغير عند تعريفه، لأنه نوعه يُحدَّد حسب السياق الذي سيستخدم هذا المتغير فيه. وهذا يعني أنَّه إذا أُسنِدَت قيمة سلسلة نصية إلى المتغير ‎$var، فإن نوع المتغير سيكون سلسلة نصية، وإذا أُسنِد عددٌ صحيحٌ، فيصبح نوع المتغير عددًا صحيحًا. ومثال ذلك، معامل الضرب *، إذا استعملناه على قيمتين وكانت إحدى تلك القيمتين عددًا عشريًا فستُعدّ كلا القيمتين على أنهما عددٌ عشريٌ، وكذلك ناتج تلك العملية، ولاحظ أن هذا لا يغير نوع العامل ...

التعامل مع الأنواع في PHP

لا تطلب PHP (أو تدعم) التصريح عن نوع المتغير عند تعريفه، لأنه نوعه يُحدَّد حسب السياق الذي سيستخدم هذا المتغير فيه. وهذا يعني أنَّه إذا أُسنِدَت قيمة سلسلة نصية إلى المتغير ‎$var، فإن نوع المتغير سيكون سلسلة نصية، وإذا أُسنِد عددٌ صحيحٌ، فيصبح نوع المتغير عددًا صحيحًا. ومثال ذلك، معامل الضرب *، إذا استعملناه على قيمتين وكانت إحدى تلك القيمتين عددًا عشريًا فستُعدّ كلا القيمتين على أنهما عددٌ عشريٌ، وكذلك ناتج تلك العملية، ولاحظ أن هذا لا يغير نوع العامل ...

استبدال المُنشئ بتابع التصميم (Replace Constructor with Factory Method)

المشكلة لديك مُنشئ (constructor) معقد يقوم بما هو أكثر من مجرد وضع قيم المعامل في حقول الكائن. الحل إنشاء تابع تصميم واستخدامه لاستبدال استدعاءات المُنشئ. مثال قبل إعادة التصميم وجود منشئ معقد للصنف Employee: في لغة Java: class Employee { Employee(int type) { this.type = type; } //... } في لغة C#‎: public class Employee { public Employee(int type) { this.type = type; } //... } في لغة PHP: class ...

الدالة gettype()‎ في PHP

(PHP 4, PHP 5, PHP 7) تُعيد الدالة gettype()‎‎‎‎ نوع المتغيّر. الوصف string gettype ( mixed $var ) تُعيد نوع المتغيّر var في PHP. للتحقّق من نوع المتغيّرات استخدم الدوال ذات البادئة is_*‎. المعاملات var المتغيّر المطلوب التحقّق من نوعه. القيم المعادة القيم الممكنة للسلسلة النصّيّة المُعادة هي: "boolean": قيمة منطقية. "integer": عدد صحيح. "double": عدد مُضاعَف الدقة (لأسباب تاريخيّة تُعاد القيمة "double" في حال كان المتغيّر عددًا عشريًّا float، وذلك بدلًا من إعادة القيمة "float" ببساطة). "string": سلسلة نصّيّة. "array": ...

المتغير التكراري في PHP

إن المتغير التكراري Iterable هو شبه نوع (نوع زائف، pseudo-type) عُرِّفَ في الإصدار 7.1 من PHP وهو يقبل أية مصفوفة أو كائن يستخدم واجهة Traversable (أي Traversable interface)، كلا النوعين يمكن تكراره باستخدام حلقة foreach ويمكن أن يُستخدم مع تعبير yield داخل دالة مولِّدة (generator). استخدام Iterables يمكن استخدام Iterable كنوع لمعاملات الدالة (function parameter type) للإشارة إلى الدالة تتطلب مجموعةً من القيم، لكن دون أن تهتم لصيغة القيمة لأنها ستُستخدَم مع حلقة foreach، إذا لم تكن القيم مصفوفة أو ...

المتغير التكراري في PHP

إن المتغير التكراري Iterable هو شبه نوع (نوع زائف، pseudo-type) عُرِّفَ في الإصدار 7.1 من PHP وهو يقبل أية مصفوفة أو كائن يستخدم واجهة Traversable (أي Traversable interface)، كلا النوعين يمكن تكراره باستخدام حلقة foreach ويمكن أن يُستخدم مع تعبير yield داخل دالة مولِّدة (generator). استخدام Iterables يمكن استخدام Iterable كنوع لمعاملات الدالة (function parameter type) للإشارة إلى الدالة تتطلب مجموعةً من القيم، لكن دون أن تهتم لصيغة القيمة لأنها ستُستخدَم مع حلقة foreach، إذا لم تكن القيم مصفوفة أو ...

معاملات الموازنة في أردوينو

تجري معاملات الموازنة (Comparison Operators) عمليةَ موازنةٍ -كما هو اسمها- بين قيمتين أو متغيِّرين أو متغير وقيمة معينة ثم تعيد قيمة منطقية تمثِّل حالة أحد المعاملين (أكبر أو أصغر أو يساوي ...إلخ) نسبةً للآخر. المعامل ‎!=‎ يوازن بين قيمتين أو متغيِّرين ويعيد القيمة true إن كانا غيرَ متساويين. المعامل ‎<‎ يوازن بين قيمتين أو متغيِّرين ويعيد القيمة true إن كان المعامل الموجود في الطرف الأيسر أصغر تمامًا من المعامل الموجود في الطرف الأيمن. المعامل ‎<=‎ يوازن بين قيمتين أو متغيِّرين ...

تبديل رموز الأنواع بالأصناف (Replace Type Code with Class)

ما هو رمز النوع (type code)؟ يحدث رمز النوع عندما يوجد مجموعة من الأرقام أو السلاسل النصية التي تشكل قائمة بالقيم المسموح بها لبعض العناصر بدلًا من استخدام نوع بيانات منفصل. غالبا ما تُعطى هذه الأرقام والسلاسل المحددة أسماءً مفهومة عن طريق الثوابت، وهو السبب في استخدام هذه الرموز بشكل كبير. المشكلة يحتوي الصنف على حقل يحتوي على رموز الأنواع. ولا تُستخدم قيم هذا النوع في شروط المُشغِّل ولا تؤثر على سلوك البرنامج. الحل إنشاء صنف جديد واستخدام كائناته بدلًا ...

المُنشِئ الحافظ للنوع (Type-Safe Builder) في لغة Kotlin

المُنشِئ الحافظ للنوع (Type-Safe Builder) يُتاح بناءُ المُنشِئ الستاتيكيّ الحافظ للنوع في لغة Kotlin باستخدام الدوال ذات التسمية المعبِّرة كمُنشِئ (builder) بالإضافة إلى قيم حرفية (literals) للدوال مع المستقبِل (receiver)، إذ يسمح المُنشِئ الحافظ للنوع ببناء لغات مُخصَّصة المجال (DSL) بالاعتماد على Kotlin بما يتناسب مع إنشاء بُنى البيانات الهرميّة المعقَّدة بطريقةٍ نصف تصريحية (semi-declarative)، وهذه بعض الأمثلة من حالات استخدامه: توليد ترميزٍ (markup) باستخدام شيفرة Kotlin مثل HTML أو XML تصميم أجزاء واجهات المستخدم (UI) برمجيًا مثل Anko ضبط ...

الدالة is_iterable()‎ في PHP

(PHP 7 >= 7.1.0) تتحقّق الدالة is_iterable()‎‎ من أنّ محتوى المتغيّر هو قيمة تكراريّة (iterable). الوصف bool is_iterable ( mixed $var ) تتحقّق من أنّ محتوى المتغيّر مقبول بواسطة النّوع الزائف التكراري (iterable pseudo-type)، أي أنّه مصفوفة أو كائن يستخدم الواجهة Traversable. المعاملات var القيمة المطلوب التّحقّق منها. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر تكراريًّا، و FALSE فيما عدا ذلك. أمثلة المثال 1: أمثلة على الدالة is_iterable()‎ <?php var_dump(is_iterable([1, 2, 3])); // bool(true) var_dump(is_iterable(new ArrayIterator([1, 2, 3]))); // bool(true) var_dump(is_iterable((function ...

القيم المنطقية في PHP

القيم المنطقية (boolean) من أبسط الأنواع، فالتعبير المنطقي يُعبِّر عن صحّة تعبيرٍ ما، فإما أن تكون قيمة التعبير صحيحةً TRUE أو خطأً FALSE. البنية العامة لتحديد قيمة متغير منطقي، استخدم الثوابت TRUE (صحيح) أو FALSE (خطأ)، وكلاهما غير حساس لحالة الأحرف. <?php $foo = True; // إسناد قيمة منطقية إلى المتغير ?> تُعيد المعاملات عادةً قيمًا منطقيةً التي تُمرَّر بدورها إلى بنى التحكم؛ ففي المثال الآتي استخدمنا المعامل == الذي يختبر مساواة قيمتين ويُعيد قيمةً منطقيةً <?php // اختبار المساواة باستعمال المعامل == الذي يعيد قيمةً منطقيةً if ($action ...

القيم المنطقية في PHP

القيم المنطقية (boolean) من أبسط الأنواع، فالتعبير المنطقي يُعبِّر عن صحّة تعبيرٍ ما، فإما أن تكون قيمة التعبير صحيحةً TRUE أو خطأً FALSE. البنية العامة لتحديد قيمة متغير منطقي، استخدم الثوابت TRUE (صحيح) أو FALSE (خطأ)، وكلاهما غير حساس لحالة الأحرف. <?php $foo = True; // إسناد قيمة منطقية إلى المتغير ?> تُعيد المعاملات عادةً قيمًا منطقيةً التي تُمرَّر بدورها إلى بنى التحكم؛ ففي المثال الآتي استخدمنا المعامل == الذي يختبر مساواة قيمتين ويُعيد قيمةً منطقيةً <?php // اختبار المساواة باستعمال المعامل == الذي يعيد قيمةً منطقيةً if ($action ...

الكائنات في PHP

تهيئة الكائن لإنشاء كائن جديد، استخدم التعبير البرمجي new لتهيئة كائن من صنفٍ ما (class): <?php class foo { function do_foo() { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); ?> راجع فصل الأصناف والكائنات (Classes and Objects) للمزيد من المعلومات. التحويل إلى كائن إذا حوّلنا كائنًا إلى كائنٍ آخر فلن يُعدَّل فيه شيء، أما إذا حولنا قيمةً من أي نوعٍ آخر إلى كائن، فستُنشَأ نسخةً جديدةً من ...

الكائنات في PHP

تهيئة الكائن لإنشاء كائن جديد، استخدم التعبير البرمجي new لتهيئة كائن من صنفٍ ما (class): <?php class foo { function do_foo() { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); ?> راجع فصل الأصناف والكائنات (Classes and Objects) للمزيد من المعلومات. التحويل إلى كائن إذا حوّلنا كائنًا إلى كائنٍ آخر فلن يُعدَّل فيه شيء، أما إذا حولنا قيمةً من أي نوعٍ آخر إلى كائن، فستُنشَأ نسخةً جديدةً من ...

الدالة functools.tools.cmp_to_key()‎ في بايثون

تُحوّل الدّالة functools.cmp_to_key()‎ دالّة مُقارنة (comparison function) إلى دالّة مفتاح (key function). تُستعمل مع الأدوات التي تقبل دوالّ مفتاح مثل sorted()‎، وmin()‎، وmax()‎، وheapq.nlargest()‎، وheapq.nsmallest()‎، وitertools.groupby()‎. تُستعمل هذه الدّالة أساسًا كأداة لنقل البرامج من Python 2 التي دعمت استعمال دوال المُقارنة. دالّة المُقارنة هي كلّ كائن قابل للاستدعاء يستقبل مُعاملين ويُقارن بينهما، ويُعيد عددًا سالبًا في حالة أصغر من، الصّفر في حالة التّساوي، وعددًا موجبًا في حالة أكبر من. ودالّة مفتاح هي كائن قابل للاستدعاء يستقبل مُعاملًا واحدًا ويُعيد قيمةً ...

القيمة NULL في PHP

تمثل القيمة الخاصة NULL متغيرًا دون قيمة، فالقيمة NULL هي القيمة الوحيد الممكنة من نوع البيانات null. تُعدّ قيمة المتغير تساوي NULL إذا: تم تعيين الثابت NULL إليه. لم يتم تعيين أية قيمة له. تم استخدام الدالة unset()‎ معه. البنية العامة توجد قيمة واحدة فقط من نوع null، وهي الثابت -غير الحساس لحالة الأحرف- NULL. <?php $var = NULL;        ?> راجع أيضا صفحة الدالة is_null()‎ و unset()‎. التحويل إلى NULL تحذير: تم إلغاء هذه الميزة بدءًا من الإصدار 7.2.0 من PHP، لذا لا يُنصَح ...

القيمة NULL في PHP

تمثل القيمة الخاصة NULL متغيرًا دون قيمة، فالقيمة NULL هي القيمة الوحيد الممكنة من نوع البيانات null. تُعدّ قيمة المتغير تساوي NULL إذا: تم تعيين الثابت NULL إليه. لم يتم تعيين أية قيمة له. تم استخدام الدالة unset()‎ معه. البنية العامة توجد قيمة واحدة فقط من نوع null، وهي الثابت -غير الحساس لحالة الأحرف- NULL. <?php $var = NULL;        ?> راجع أيضا صفحة الدالة is_null()‎ و unset()‎. التحويل إلى NULL تحذير: تم إلغاء هذه الميزة بدءًا من الإصدار 7.2.0 من PHP، لذا لا يُنصَح ...

الأعداد الصحيحة في PHP

العدد الصحيح هو عدد من المجموعة ℤ = {…, -2, -1, 0, 1, 2, …}‎‎. البنية العامة يمكن تحديد الأعداد الصحيحة باستخدام النظام العشري (decimal، أي ذو الأساس 10) والست عشري (hexadecimal، الأساس 16) والثماني (octal، الأساس 8) والثنائي (binary، الأساس 2)، كما يمكن أن يسبقها (اختياريًا) إشارة - أو +. أصبحت الأعداد الثنائية موجودة منذ الإصدار PHP 5.4.0.  يجب أن يسبق العدد بالقيمة 0 لاستخدام النظام الثماني، وبالقيمة 0x لاستخدام النظام الست عشري، أما النظام الثنائي فيجب وضع 0b ...

الأعداد الصحيحة في PHP

العدد الصحيح هو عدد من المجموعة ℤ = {…, -2, -1, 0, 1, 2, …}‎‎. البنية العامة يمكن تحديد الأعداد الصحيحة باستخدام النظام العشري (decimal، أي ذو الأساس 10) والست عشري (hexadecimal، الأساس 16) والثماني (octal، الأساس 8) والثنائي (binary، الأساس 2)، كما يمكن أن يسبقها (اختياريًا) إشارة - أو +. أصبحت الأعداد الثنائية موجودة منذ الإصدار PHP 5.4.0.  يجب أن يسبق العدد بالقيمة 0 لاستخدام النظام الثماني، وبالقيمة 0x لاستخدام النظام الست عشري، أما النظام الثنائي فيجب وضع 0b ...

الثوابت المعرَّفة مسبقًا في قسم التعامل مع نظام الملفات في PHP

الثوابت المذكورة في الأسفل مُعرَّفةٌ باستعمال هذا الملحق، وستُتاح هذه الثوابت فقط عند توفُّر الملحق إمّا عندما تُفسَّر (compiled) إلى لغة PHP أو عند التحميل الديناميكي وقت التنفيذ. الاسم النوع الوصف SEEK_SET integer SEEK_CUR integer SEEK_END integer LOCK_SH integer LOCK_EX integer LOCK_UN integer LOCK_NB integer GLOB_BRACE integer GLOB_ONLYDIR integer GLOB_MARK integer GLOB_NOSORT integer GLOB_NOCHECK integer GLOB_NOESCAPE integer GLOB_AVAILABLE_FLAGS integer PATHINFO_DIRNAME integer PATHINFO_BASENAME integer PATHINFO_EXTENSION integer PATHINFO_FILENAME integer منذ إصدار PHP 5.2.0. FILE_USE_INCLUDE_PATH integer البحث عن اسم الملف filename في المسار ...

تبديل رموز الأنواع بالأصناف الفرعية (Replace Type Code with Subclasses)

ما هو رمز النوع؟ يحدث رمز النوع عندما يوجد مجموعة من الأرقام أو السلاسل النصية التي تشكل قائمة بالقيم المسموح بها لبعض العناصر بدلًا من استخدام نوع بيانات منفصل. وغالبًا ما تُعطَى هذه الأرقام والسلاسل المحددة أسماءً مفهومة عن طريق الثوابت، وهو السبب في استخدام هذه الرموز بشكل كبير. المشكلة يؤثر النوع المُرمَّز على سلوك البرنامج (تُطلِق قيم هذا الحقل رموز مختلفة في الشرطيات). الحل إنشاء أصناف فرعية لكل قيمة من النوع المُرمَّز. ثم استخراج السلوكيات ذات الصلة من الصنف ...

التحقق من الأنواع (Type Check) والتحويل بينها (Casting) في لغة Kotlin

المعاملين is و ‎!is تدعم لغة Kotlin ميّزة التحقُّق من توافق الكائن مع أحد الأنواع أثناء التنفيذ، وذلك بالاعتماد على المُعامِل is أو صيغته المنفيّة ‎!is كما في الشيفرة: if (obj is String) { print(obj.length) } if (obj !is String) { // !(obj is String) مكافئ للصيغة print("Not a String") } else { print(obj.length) } التحويلات الذكية (Smart Casts) لا حاجة في كثيرٍ من الأحيان لجعل التحويل صريحًا (explicit) في لغة Kotlin لأنّ المترجم (compiler) يتتبَّع ...

for في PHP

(PHP 4, PHP 5, PHP 7) تعدّ حلقات for النوع الأكثر تعقيدًا من الحلقات في PHP، وهي مشابهة لنظيرتها في لغة C، وتأخذ الصيغة التالية: for (expr1; expr2; expr3) statement ينفّذ التعبير expr1 مرة واحدة دون قيد أو شرط في بداية الحلقة، وينفّذ التعبير expr2 في بداية كل دورة، فإن كانت النتيجة هي TRUE فتستمر الحلقة في عملها وتنفّذ العبارات المضمّنة فيها، أما إن كانت النتيجة هي FALSE فتتوقف الحلقة عن العمل، أما التعبير expr3 فينفّذ في ...

if في PHP

(PHP 4, PHP 5, PHP 7) بنية if هي واحدة من أهم الميزات المتوفّرة في العديد من اللغات البرمجية، ومن ضمنها PHP. إذ تتيح تنفيذ أجزاء من الشيفرة اعتمادًا على شروط معينة. تعتمد PHP بنية if المعتمدة في لغة C: if (expr) statement تُحسب التعابير -كما ورد في الفصل المتعلّق بالتعابير في هذا الدليل- إلى قيمة منطقية (Boolean)، فإن كانت نتيجة الحساب هي TRUE تنفذ PHP العبارة، وإن كانت نتيجة الحساب هي FALSE تتجاهل اللغة ذلك التعبير. يمكن الحصول ...

for في PHP

(PHP 4, PHP 5, PHP 7) تعدّ حلقات for النوع الأكثر تعقيدًا من الحلقات في PHP، وهي مشابهة لنظيرتها في لغة C، وتأخذ الصيغة التالية: for (expr1; expr2; expr3) statement ينفّذ التعبير expr1 مرة واحدة دون قيد أو شرط في بداية الحلقة، وينفّذ التعبير expr2 في بداية كل دورة، فإن كانت النتيجة هي TRUE فتستمر الحلقة في عملها وتنفّذ العبارات المضمّنة فيها، أما إن كانت النتيجة هي FALSE فتتوقف الحلقة عن العمل، أما التعبير expr3 فينفّذ في ...

if في PHP

(PHP 4, PHP 5, PHP 7) بنية if هي واحدة من أهم الميزات المتوفّرة في العديد من اللغات البرمجية، ومن ضمنها PHP. إذ تتيح تنفيذ أجزاء من الشيفرة اعتمادًا على شروط معينة. تعتمد PHP بنية if المعتمدة في لغة C: if (expr) statement تُحسب التعابير -كما ورد في الفصل المتعلّق بالتعابير في هذا الدليل- إلى قيمة منطقية (Boolean)، فإن كانت نتيجة الحساب هي TRUE تنفذ PHP العبارة، وإن كانت نتيجة الحساب هي FALSE تتجاهل اللغة ذلك التعبير. يمكن الحصول ...

ردود النداء في PHP

يمكن الإشارة إلى رد النداء (Callbacks) باستخدام نوع البيانات (callable) منذ إصدار PHP 5.4، هذا التوثيق يستخدم معلومات نوع callback لنفس الغرض. بعض الدوال مثل call_user_func()‎ أو usort()‎ تقبل فقط دوال رد النداء المعرّفة من قبل المستخدم (user-defined callback functions) كمعامل. دوال رد النداء ليست دوالًا بسيطةً فحسب، بل يمكن استخدام الدوال التي تكون أعضاءً في أصناف (object methods)، بما في ذلك الدوال الساكنة (static class methods). تمرير دوال رد النداء يتم تمرير أي دالة PHP باستخدام اسمها كسلسلة نصية، ...

ردود النداء في PHP

يمكن الإشارة إلى رد النداء (Callbacks) باستخدام نوع البيانات (callable) منذ إصدار PHP 5.4، هذا التوثيق يستخدم معلومات نوع callback لنفس الغرض. بعض الدوال مثل call_user_func()‎ أو usort()‎ تقبل فقط دوال رد النداء المعرّفة من قبل المستخدم (user-defined callback functions) كمعامل. دوال رد النداء ليست دوالًا بسيطةً فحسب، بل يمكن استخدام الدوال التي تكون أعضاءً في أصناف (object methods)، بما في ذلك الدوال الساكنة (static class methods). تمرير دوال رد النداء يتم تمرير أي دالة PHP باستخدام اسمها كسلسلة نصية، ...

Math.round()‎

الدالة Math.round()‎ تعيد قيمة العدد مقربةً إلى أقرب عدد صحيح. البنية العامة Math.round(x) x العدد التي ستُجرى عليه العملية. القيمة المعادة قيمة العدد مقربةً إلى أقرب عدد صحيح. الوصف إذا كان الجزء العشري من العدد أكبر من 0.5 فسيُقرّب إلى العدد الصحيح الذي يملك القيمة المطلقة الأكبر، وإذا كان أقل من 0.5 فسيُقرّب إلى العدد الصحيح الذي يملك القيمة المطلقة الأقل، وإذا كان الجزء العشري يساوي 0.5، فسيُقرّب العدد إلى العدد الصحيح التالي باتجاه زائد لانهاية. لاحظ أنَّ ذلك يختلف ...

عوامل الأنواع في PHP

تستخدم instanceof لتحديد ما إذا كان المتغير كائنًا مهيّئًا من صنف معين: المثال 1: استخدام instanceof مع الأصناف <?php class MyClass { } class NotMyClass { } $a = new MyClass; var_dump($a instanceof MyClass); var_dump($a instanceof NotMyClass); ?> يعطي المثال السابق المخرجات التالية: bool(true) bool(false) يمكن استخدام instanceof كذلك لتحديد ما إذا كان المتغير كائنًا مهيّئًا من صنف موروث من صنف آخر: المثال 2: استخدام instanceof مع الأصناف الموروثة <?php class ParentClass { } class MyClass extends ParentClass { } $a = new MyClass; var_dump($a instanceof MyClass); var_dump($a instanceof ParentClass); ?> يعطي المثال السابق المخرجات التالية: bool(true) bool(true) يمكن استخدام عامل النفي ...

عوامل الأنواع في PHP

تستخدم instanceof لتحديد ما إذا كان المتغير كائنًا مهيّئًا من صنف معين: المثال 1: استخدام instanceof مع الأصناف <?php class MyClass { } class NotMyClass { } $a = new MyClass; var_dump($a instanceof MyClass); var_dump($a instanceof NotMyClass); ?> يعطي المثال السابق المخرجات التالية: bool(true) bool(false) يمكن استخدام instanceof كذلك لتحديد ما إذا كان المتغير كائنًا مهيّئًا من صنف موروث من صنف آخر: المثال 2: استخدام instanceof مع الأصناف الموروثة <?php class ParentClass { } class MyClass extends ParentClass { } $a = new MyClass; var_dump($a instanceof MyClass); var_dump($a instanceof ParentClass); ?> يعطي المثال السابق المخرجات التالية: bool(true) bool(true) يمكن استخدام عامل النفي ...

تبديل رموز الأنواع بالحالة/الاستراتيجية (Replace Type Code with State/Strategy)

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

الاستجابات HTTP في Laravel

إنشاء الردود السلاسل النصيّة والمصفوفات يجب على جميع الطرق ووحدات التحكّم رد استجابة لإرسالها مرّة أخرى إلى متصفّح المستخدم. يوفر Laravel عدة طرق مختلفة لإرجاع الردود. أكثر رد أساسي هو رد سلسلة نصيّة من مسار أو جهاز تحكّم. سيُحوّل إطار العمل السلسلة النصيّة إلى استجابة HTTP كاملة تلقائيًا: Route::get('/', function () { return 'Hello World'; }); يمكنك بالإضافة لرد السلاسل من مساراتك ووحدات تحكّمك رد مصفوفات. سيُحوّل إطار العمل تلقائيًا المصفوفة لاستجابة JSON: Route::get('/', function () { ...

الموارد في PHP

المورد هو متغير خاص يحمل مرجعيةً إلى مورد خارجي، تُنشَأ الموارد وتُستخدَم باستعمال دوال خاصة، اطلع على الملحق للحصول على قائمة تضم جميع الدوال مع نوع المورد المناسب. اطلع على الدالة get_resource_type()‎ أيضًا. التحويل إلى مورد لا يمكن تحويل القيم من الأنواع الأخرى إلى موارد، فهذه المتغيرات تحمل مقابض (handles) خاصة لفتح الملفات، اتصالات قاعدة البيانات، مناطق الصورة … تحرير الموارد بفضل نظام عدّ المراجع (reference-counting system) الموجود في محرك Zend، ستُكتَشَف الموارد التي لا تمتلك مرجع إليها تلقائيًا، ,وتُحرَّر ...

الموارد في PHP

المورد هو متغير خاص يحمل مرجعيةً إلى مورد خارجي، تُنشَأ الموارد وتُستخدَم باستعمال دوال خاصة، اطلع على الملحق للحصول على قائمة تضم جميع الدوال مع نوع المورد المناسب. اطلع على الدالة get_resource_type()‎ أيضًا. التحويل إلى مورد لا يمكن تحويل القيم من الأنواع الأخرى إلى موارد، فهذه المتغيرات تحمل مقابض (handles) خاصة لفتح الملفات، اتصالات قاعدة البيانات، مناطق الصورة … تحرير الموارد بفضل نظام عدّ المراجع (reference-counting system) الموجود في محرك Zend، ستُكتَشَف الموارد التي لا تمتلك مرجع إليها تلقائيًا، ,وتُحرَّر ...

تبديل الشرطيات بالتعدديّة الشكليّة (Replace Conditional with Polymorphism)

المشكلة وجود شروط تنفِّذ إجراءات مختلفة اعتمادًا على نوع الكائن أو خصائصه. الحل إنشاء أصناف فرعية مطابقة لفروع البنية الشرطية. ويُنشأ فيها تابع مشترك وتُنقل إليه الشيفرة البرمجية من الفرع المقابل من الشرطية. ثم تُستبدل البنية الشرطية باستدعاء التابع المناسب. وينتج عن ذلك تنفيذ سليم يتحقق من خلال التعدديّة الشكليّة اعتمادًا على صنف الكائن. مثال قبل إعادة التصميم الصنف Bird يحتوي على التابع getSpeed الذي باستعمال البنية الشرطية switch من النوع type لحساب السرعة بناءً على قيمته: في لغة Java: ...

معاملات الدوال في PHP

يمكن تمرير المعلومات إلى الدوالّ بواسطة قائمة المعاملات argument list، وهي قائمة من التعابير المفصولة بالعلامة (,)، وتُعالج هذه المعاملات من اليسار إلى اليمين. تدعم اللغة تمرير المعاملات بالقيمة (by value، والطريقة الافتراضية) وبالمرجعية وتدعم كذلك تعيين القيمة الافتراضية للمعاملات، إضافة إلى دعم قوائم المعاملات متغيّرة الأطوال. المثال 1: تمرير المصفوفات إلى الدوال <?php function takes_array($input) { echo "$input[0] + $input[1] = ", $input[0]+$input[1]; } ?> تمرير المعاملات بالمرجعية تمرّر معاملات الدوال بصورة افتراضية عن طريق القيمة (بمعنى أنّه لو تغيّرت ...

معاملات الدوال في PHP

يمكن تمرير المعلومات إلى الدوالّ بواسطة قائمة المعاملات argument list، وهي قائمة من التعابير المفصولة بالعلامة (,)، وتُعالج هذه المعاملات من اليسار إلى اليمين. تدعم اللغة تمرير المعاملات بالقيمة (by value، والطريقة الافتراضية) وبالمرجعية وتدعم كذلك تعيين القيمة الافتراضية للمعاملات، إضافة إلى دعم قوائم المعاملات متغيّرة الأطوال. المثال 1: تمرير المصفوفات إلى الدوال <?php function takes_array($input) { echo "$input[0] + $input[1] = ", $input[0]+$input[1]; } ?> تمرير المعاملات بالمرجعية تمرّر معاملات الدوال بصورة افتراضية عن طريق القيمة (بمعنى أنّه لو تغيّرت ...

معاملات الدوال في PHP

يمكن تمرير المعلومات إلى الدوالّ بواسطة قائمة المعاملات argument list، وهي قائمة من التعابير المفصولة بالعلامة (,)، وتُعالج هذه المعاملات من اليسار إلى اليمين. تدعم اللغة تمرير المعاملات بالقيمة (by value، والطريقة الافتراضية) وبالمرجعية وتدعم كذلك تعيين القيمة الافتراضية للمعاملات، إضافة إلى دعم قوائم المعاملات متغيّرة الأطوال. المثال 1: تمرير المصفوفات إلى الدوال <?php function takes_array($input) { echo "$input[0] + $input[1] = ", $input[0]+$input[1]; } ?> تمرير المعاملات بالمرجعية تمرّر معاملات الدوال بصورة افتراضية عن طريق القيمة (بمعنى أنّه لو تغيّرت ...

الاستثناءات في PHP

يتضمّن الإصدار الخامس من PHP نموذج استثناءات مشابهًا للغات البرمجية الأخرى. يمكن رمي الاستثناء والتقاطه في PHP، ويمكن إحاطة الشيفرة بكتلة try لتسهيل عملية التقاط الاستثناءات المحتملة، ويجب أن ترتبط بكل كتلة try إما كتلة catch أو finally واحدة على الأقل. يجب أن يكون كائن الاستثناء المرمي نسخة من الصنف Exception أو صنفًا متفرعًا منه، ويؤدي رمي كائن لا ينتمي إلى هذا الصنف إلى حدوث خطأ من نوع Fatal. الكتلة catch يمكن استخدام كتل catch متعدّدة لالتقاط أصناف مختلفة من ...

الاستثناءات في PHP

يتضمّن الإصدار الخامس من PHP نموذج استثناءات مشابهًا للغات البرمجية الأخرى. يمكن رمي الاستثناء والتقاطه في PHP، ويمكن إحاطة الشيفرة بكتلة try لتسهيل عملية التقاط الاستثناءات المحتملة، ويجب أن ترتبط بكل كتلة try إما كتلة catch أو finally واحدة على الأقل. يجب أن يكون كائن الاستثناء المرمي نسخة من الصنف Exception أو صنفًا متفرعًا منه، ويؤدي رمي كائن لا ينتمي إلى هذا الصنف إلى حدوث خطأ من نوع Fatal. الكتلة catch يمكن استخدام كتل catch متعدّدة لالتقاط أصناف مختلفة من ...

النشر على الخادم الإنتاجي في Laravel

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

اختبارات المتصفح (Laravel Dusk) في Laravel

مقدمة يوفّر لك Laravel Dusk أتمتة للمتصفّح واختبار للواجهات البرمجيّة بطريقة سهلة الاستخدام. بشكلٍ افتراضي، لا يتطلّب Dusk تنصيب JDK أو Selenium على جهازك، حيث يستعمل تثبيت مستقل (standalone) لبرمجية ChromeDriver. بأي حال، يمكنك استخدام أي برنامج تشغيل متوافق مع Selenium إذا أردت. التثبيت للبدء، أضف الاعتمادية laravel/dusk إلى مشروعك: composer require --dev laravel/dusk بعد تثبيت Dusk، سجّل مزوّد الخدمة الذي يتبع إلى Dusk، وهو Laravel\Dusk\DuskServiceProvider. بشكل عام، يكون هذا تلقائيًّا باستخدام التسجيل التلقائي لمزوّدات خدمة Laravel. تنبيه: إذا قمت بتسجيل ...

الدالة file_get_contents()‎ في PHP

(PHP 4 >= 4.3.0, PHP 5, PHP 7) تقرأ الدالة file_get_contents()‎ الملف ثمَّ تضع كلَّ محتوياته في سلسلة نصيَّة. الوصف string file_get_contents ( string $filename [, bool $use_include_path= FALSE [, resource $context [, int $offset = 0 [, int $maxlen ]]]] ) تشبه هذه الدالة إلى حدٍّ كبير الدالة file()‎ باستثناء أنَّها تعيد محتوى الملف في سلسلة نصيَّة. يبدأ ذلك المحتوى عند الموقع offset ويكون بطول maxlen بايت. تعيد هذه الدالة عندما تفشل القيمة FALSE. تعدُّ الدالة file_get_contents()‎ وسيلة مفضَّلة لقراءة ...

تجريد الأصناف في PHP

يقدّم الإصدار الخامس من اللغة الأصناف والتوابع المجرّدة (abstract classes and methods). لا يمكن تهيئة الأصناف المجرّدة، وإذا احتوى الصنف على تابع مجرّد واحدٍ على الأقل فيجب أن يكون الصنف مجردًا أيضًا. تصرّح الأصناف المجرّدة ببساطة عن توقيع التابع (method's signature، أي اسم الدالة وعدد ونوع معاملاتها)، ولا يمكنها تعريف محتويات تلك التوابع (implementation). عندما يرث صنفٌ ما من صنفٍ مجرّد، يجب تعريف جميع التوابع المجرّدة في الصنف الأب ضمن الصنف الابن، إضافة إلى وجوب تعريف هذه الأصناف بنفس مستوى ...

تجريد الأصناف في PHP

يقدّم الإصدار الخامس من اللغة الأصناف والتوابع المجرّدة (abstract classes and methods). لا يمكن تهيئة الأصناف المجرّدة، وإذا احتوى الصنف على تابع مجرّد واحدٍ على الأقل فيجب أن يكون الصنف مجردًا أيضًا. تصرّح الأصناف المجرّدة ببساطة عن توقيع التابع (method's signature، أي اسم الدالة وعدد ونوع معاملاتها)، ولا يمكنها تعريف محتويات تلك التوابع (implementation). عندما يرث صنفٌ ما من صنفٍ مجرّد، يجب تعريف جميع التوابع المجرّدة في الصنف الأب ضمن الصنف الابن، إضافة إلى وجوب تعريف هذه الأصناف بنفس مستوى ...

قوالب Blade في Laravel

مقدمة يقدم Laravel محرّك قولبةٍ بسيطاً لكن قويٌّ و فعّال هو Blade. على خلاف محرّكات PHP أخرى، لا يمنع Blade المستخدم من استعمال شيفرات PHP في الواجهة، بل إنّه يحوِِّل صفحات Blade إلى شيفرة PHP ويخزِّنها تخزينًا مؤقتًا إلى حين تغييرها. ممّا يعني أنّ Blade لا يتطلب أيّ جهد أو وقت إضافي من التطبيق. تنتهي صفحات Blade بالامتداد blade.php. وتوجد عادة في مجلد resources/views. توريث القوالب تعريف التخطيط إنّ من الفوائد الأساسية لاستخدام Blade هي توريث القوالب (template inheritance) واستخدام ...

قوالب Blade في Laravel

مقدمة يقدم Laravel محرّك قولبةٍ بسيطاً لكن قويٌّ و فعّال هو Blade. على خلاف محرّكات PHP أخرى، لا يمنع Blade المستخدم من استعمال شيفرات PHP في الواجهة، بل إنّه يحوِِّل صفحات Blade إلى شيفرة PHP ويخزِّنها تخزينًا مؤقتًا إلى حين تغييرها. ممّا يعني أنّ Blade لا يتطلب أيّ جهد أو وقت إضافي من التطبيق. تنتهي صفحات Blade بالامتداد blade.php. وتوجد عادة في مجلد resources/views. توريث القوالب تعريف التخطيط إنّ من الفوائد الأساسية لاستخدام Blade هي توريث القوالب (template inheritance) واستخدام ...

switch في PHP

(PHP 4, PHP 5, PHP 7) تشبه عبارة switch سلسلةً من عبارات if مطبّقة على نفس التعبير. قد تحتاج في بعض الأحيان إلى مقارنة نفس المتغير (أو التعبير) مع قيم مختلفة (حالات cases)، وتنفيذ شيفرة مختلفة بالاعتماد على ذلك، وهذه هي وظيفة عبارة switch. ملاحظة: بخلاف بعض اللغات البرمجية، يمكن استخدام عبارة continue في switch وهي تعمل عمل العبارة break. إن كنت تستخدم switch داخل حلقة وأردت الانتقال إلى الدورة التالية في الحلقة التكرارية الخارجية، استخدم continue 2. ملاحظة: تؤدي ...

include في PHP

(PHP 4, PHP 5, PHP 7) تعمل عبارة include على تضمين ومعالجة الملف المحدّد. ينطبق التوثيق التالي على عبارة require. تُضمّن الملفات بالاعتماد على المسار المعطى للعبارة، وفي حال عدم تحديد المسار، تأخذ include المسار المحدد في include_path. إن لم يكن الملف موجودًا في include_path ستتحقّق include في المجلّد الذي يحتوي على الشيفرة التي أجرت الاستدعاء وفي مجلد العمل الحالي قبل أن تطلق خطأً. تطلق بنية include تحذيرًا إن لم تتمكن من العثور على الملف، وتختلف في ذلك عن require ...

break في PHP

(PHP 4, PHP 5, PHP 7) تنهي break تنفيذ حلقات for أو foreach أو while أو do-while أو بنية switch. تأخذ break معاملًا عدديًا اختياريًا يُحدّد من خلاله عدد البنى المتداخلة التي‏ يجب إيقاف تنفيذها. القيمة الافتراضية لهذا المعامل هي 1، والذي يعني إيقاف تنفيذ البنية الحالية فقط. <?php $arr = array('one', 'two', 'three', 'four', 'stop', 'five'); while (list(, $val) = each($arr)) { if ($val == 'stop') { break; /* يمكن أيضًا كتابة /* ...

require في PHP

(PHP 4, PHP 5, PHP 7) العبارة require مطابقة للعبارة include باستثناء أنّها تطلق خطأ من نوع E_COMPLE_ERROR في حال فشلها في جلب الملف. وبعبارة أخرى فإنها ستوقف عمل الشيفرة تمامًا، في حين أنّ include تطلق تحذيرًا (E_WARNING) والذي لا يؤدي إلى إيقاف الشيفرة عن العمل. راجع توثيق include لمعرفة طريقة عملها. مصادر صفحة require في توثيق PHP الرسمي.

المتغيرات في PHP

يكون التعبير عن المتغيرات في PHP باستخدام علامة $ متبوعة باسم المتغير والذي يكون حساسًا لحالة الأحرف. تتبع المتغيرات نفس القواعد المتبّعة للتسمية في PHP. إذ يبدأ اسم المتغير الصحيح بحرف أو بشرطة سفلية متبوعة بعدد غير محدد من الحروف أو الأرقام أو الشرطات السفلية. ولو أردنا استخدام التعابير النمطية (Regular Expression) للتعبير عن اسم المتغير فسيكون كالتالي: '‎‎[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*‎‎'. ملاحظة: في هذا الدليل الحرف هو كل ما يقع ضمن النطاق a-z و A-Z والبايتات من 127 إلى 255 (0x7f-0xff). ملاحظة: ...

الثوابت في PHP

الثابت هو معرّف (اسم) لقيمة بسيطة، وكما هو واضح من الاسم فإنّ هذه القيمة غير قابلة للتبديل أثناء تنفيذ الشيفرة (باستثناء الثوابت السحرية والتي لا تعدّ ثوابت في الواقع). الثابت حساس لحالة الأحرف ومن الشائع استخدام الأحرف الكبيرة في تسمية الثوابت. تتبع الثوابت نفس القواعد المتّبعة للتسمية في PHP، فاسم الثابت الصحيح يبدأ بحرف أو بشرطة سفلية، متبوعًا بعدد غير محدّد من الأحرف والأرقام والشرطات السفلية. ولو أردنا استخدام التعابير النمطية (Regular Expressions) للتعبير عن اسم المتغير فسيكون كالتالي: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* ...

continue في PHP

(PHP 4, PHP 5, PHP 7) تستخدم continue في الحلقات التكرارية لتجاوز ما يأتي بعدها في الحلقة التكرارية والاستمرار في تنفيذ الشيفرة حسب الشرط المعتمد في الحلقة ثم الانتقال إلى بداية الدورة التالية. تأخذ continue معاملًا عدديًّا اختياريًا يمكن من خلاله تحديد عدد الحلقات التكرارية المحيطة بها والتي يجب تجاوزها إلى النهاية. القيمة الافتراضية هي 1 والتي تعني الانتقال إلى نهاية الحلقة الحالية. ملاحظة: تعدّ عبارة switch في PHP من الحلقات التكرارية عند الحديث عن continue. تسلك continue سلوك break ...

declare في PHP

(PHP 4, PHP 5, PHP 7) تستخدم بنية declare لتعيين موجّهات التنفيذ (execution directives) لكتلة من الشيفرة، وصيغة declare مشابهة لبنى التحكم في تدفق الشيفرة. الوصف declare (directive) statement يتيح الموجه تعيين سلوك كتلة (block). يمكن للغة في الوقت الحاضر أن تتعرف على ثلاثة أنواع من الموجهات فقط: موجه ticks (للمزيد من المعلومات حول موجه ticks انظر أدناه)، وموجه encoding (للمزيد من المعلومات حول موجه encoding انظر أدناه)، وموجه strict_types (للمزيد من المعلومات راجع قسم strict في ...

return في PHP

(PHP 4, PHP 5, PHP 7) تعيد تنفيذ البرنامج إلى الوحدة التي قامت بالاستدعاء، وسيستمر التنفيذ إلى التعبير الذي يلي تعبير الاستدعاء. إذا استدعيت عبارة return داخل الدالة فإنّها ستنهي تنفيذ الدالة على الفور وتعيد معاملها كقيمة لاستدعاء الدالة. تنهي return أيضًا تنفيذ عبارة eval()‎ أو ملف الشيفرة. إن استدعيت عبارة return من النطاق العام (global scope) فإنها تنهي عملية تنفيذ ذلك الملف. وإن كان ملف الشيفرة مضمنًا (included) أو مطلوبًا (required)، فإن التحكّم يعود إلى الملف المستدعي مرة أخرى. ...

المصفوفات في PHP

المصفوفة في PHP هي خريطة (map) مرتّبة، والخريطة هي نوع ترتبط فيه القيم مع المفاتيح، ولها استخدامات عديدة، فيمكن التعامل معها كمصفوفة أو قائمة (vector) أو جدول hash (نوع من الخرائط) أو قاموس (dictionary) أو مجموعة (collection) أو مكدس (stack) أو طابور (queue) وغير ذلك، حتى أن قيم المصفوفة يمكن أن تكون مصفوفات أخرى، ممّا يسمح بإنشاء مصفوفات متعددة الأبعاد. لن نشرح جميع هذه الأنواع في هذا التوثيق، لكن ستجد مثالًا واحدًا على الأقل لكلٍ منها. الصياغة إنشاء المصفوفات باستخدام ...

foreach في PHP

(PHP 4, PHP 5, PHP 7) تقدّم بنية foreach طريقة سهلة للتنقل بين عناصر المصفوفات، وتعمل هذه البنية مع المصفوفات والكائنات فقط، ويؤدي استخدامها مع متغير ذي نوع بيانات مختلف أو متغير غير مهيئ إلى إطلاق خطأ. لهذه البنية صيغتان: foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement تنتقل الصيغة الأولى عبر المصفوفة بحسب التعبير المقدّم إليها (array_expression). وفي كل دورة تسند اللغة قيمة العنصر الحالي إلى المتغير ‎$value ويتقدّم المؤشر ...

goto في PHP

(PHP 5 >= 5.3.0, PHP 7) يمكن استخدام عامل goto للانتقال إلى قسم آخر في البرنامج، وتعيّن نقطة الانتقال هذه بواسطة وسم متبوعٍ بنقطتين رأسيتين (:)، وتكون طريقة الانتقال باستخدام العامل goto متبوعًا بالوسم المراد الانتقال إليه. هناك بعض القيود المفروضة على استخدام goto، إذ يجب أن يكون الوسم الهدف في نفس الملف ونفس السياق (context)، بمعنى أنّه لا يمكن الانتقال من داخل الدالة أو التابع إلى الخارج كما لا يمكن الانتقال إلى الداخل. لا يمكن أيضًا الانتقال إلى أي ...

continue في PHP

(PHP 4, PHP 5, PHP 7) تستخدم continue في الحلقات التكرارية لتجاوز ما يأتي بعدها في الحلقة التكرارية والاستمرار في تنفيذ الشيفرة حسب الشرط المعتمد في الحلقة ثم الانتقال إلى بداية الدورة التالية. تأخذ continue معاملًا عدديًّا اختياريًا يمكن من خلاله تحديد عدد الحلقات التكرارية المحيطة بها والتي يجب تجاوزها إلى النهاية. القيمة الافتراضية هي 1 والتي تعني الانتقال إلى نهاية الحلقة الحالية. ملاحظة: تعدّ عبارة switch في PHP من الحلقات التكرارية عند الحديث عن continue. تسلك continue سلوك break ...

require_once في PHP

(PHP 4, PHP 5, PHP 7) عبارة require_once مطابقة للعبارة require باستثناء أن PHP ستتحقق مما إذا كان الملف مضمّنًا أم لا، وذلك لتجنّب تضمينه (require) مرة أخرى. راجع توثيق include_once للمزيد من المعلومات حول طريقة عمل ‎_once، والفرق بينها وبين الدوال التي لا تلحق بها هذه اللاحقة. مصادر صفحة require_once في توثيق PHP الرسمي.

الأخطاء في PHP

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

require في PHP

(PHP 4, PHP 5, PHP 7) العبارة require مطابقة للعبارة include باستثناء أنّها تطلق خطأ من نوع E_COMPLE_ERROR في حال فشلها في جلب الملف. وبعبارة أخرى فإنها ستوقف عمل الشيفرة تمامًا، في حين أنّ include تطلق تحذيرًا (E_WARNING) والذي لا يؤدي إلى إيقاف الشيفرة عن العمل. راجع توثيق include لمعرفة طريقة عملها. مصادر صفحة require في توثيق PHP الرسمي.

المولدات في PHP

تقدّم المولِّدات (Generators) طريقة سهلة لاستخدام المكرِّرات (Iterators) البسيطة دون الدخول في تعقيدات استخدام صنف يطبّق الواجهة Iterator. تتيح المولِّدات كتابة شيفرة تستخدم foreach لمرور على مجموعة من البيانات دون الحاجة إلى بناء مصفوفة في الذاكرة مما قد يؤدي إلى تجاوز حدود الذاكرة، أو يحتاج إلى وقت معالجة طويل لإنشائه. بدلًا من ذلك، يمكن كتابة دالة مولِّدة وهي دالة مشابهة للدوال الاعتيادية باستثناء أنّها لا تعيد النتيجة مرة واحدة بل تعيد العدد المطلوب من النتائج لغرض تقديم القيم التي يتم ...

else في PHP

(PHP 4, PHP 5, PHP 7) قد ترغب في كثير من الأحيان تنفيذ عبارة معينة عند تحقق شرط معين وتنفيذ عبارة أخرى في حال عدم تحقق الشرط. هنا يأتي دور else، والتي تعمل على تمديد عبارة if لتنفيذ عبارة أخرى في حال أدّى حساب عبارة if إلى النتيجة FALSE. على سبيل المثال تطبع الشيفرة التالية عبارة 'a is greater than b' إن كان المتغير ‎$a أكبر من المتغير ‎$b، وتطبع العبارة 'a is NOT greater than b' إن كان ‎$a ...

foreach في PHP

(PHP 4, PHP 5, PHP 7) تقدّم بنية foreach طريقة سهلة للتنقل بين عناصر المصفوفات، وتعمل هذه البنية مع المصفوفات والكائنات فقط، ويؤدي استخدامها مع متغير ذي نوع بيانات مختلف أو متغير غير مهيئ إلى إطلاق خطأ. لهذه البنية صيغتان: foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement تنتقل الصيغة الأولى عبر المصفوفة بحسب التعبير المقدّم إليها (array_expression). وفي كل دورة تسند اللغة قيمة العنصر الحالي إلى المتغير ‎$value ويتقدّم المؤشر ...

PHP/Function

تحتوي لغة PHP على عددٍ كبير من الدوال القياسية المُضمَّنة في اللغة. دوال المصفوفات الدوال الرياضية دوال معالجة النصوص

المراجع في PHP

المراجع (references) في PHP هي وسيلة للوصول إلى محتوى المتغير نفسه باستخدام أسماء مختلفة، والمراجع لا تشبه المؤشّرات في لغة C، فعلى سبيل المثال لا يمكن إجراء العمليات الحسابية الخاصّة بالمؤشّرات على المراجع، وهي ليست عناوين ذاكرة حقيقية، وهكذا. راجع الصفحة "ما هو غير المقصود بالمراجع" للمزيد من المعلومات. المراجع هي أسماء بديلة رمزية مجدولة (Symbol table aliases). لاحظ أنّ اسم المتغير ومحتواه مختلفان في لغة PHP؛ لهذا يمكن لنفس المحتوى أن يحمل اسمين مختلفين. وأقرب مثال على ذلك هو ...

include_once في PHP

(PHP 4, PHP 5, PHP 7) تُضمِّن العبارة include_once الملفّ المحدد وتعالجه أثناء تنفيذ الشيفرة. هذه السلوك مشابه لعبارة include والفرق الوحيد هنا هو إن كانت شيفرة ذلك الملف مضمّنة من قبل فإنّها لن تُضمِّنَه مرة أخرى، وترجع include_once القيمة TRUE، وهذا السلوك متوقع من اسم العبارة. يمكن استخدام include_once في الحالات التي يمكن لنفس الملف أن يُضمَّن ويُعالَج لأكثر من مرة خلال مرحلة معيّنة من مراحل تنفيذ الشيفرة، وفي هذه الحالة يمكن تجنب بعض المشاكل مثل إعادة تعريف الدوال ...

include_once في PHP

(PHP 4, PHP 5, PHP 7) تُضمِّن العبارة include_once الملفّ المحدد وتعالجه أثناء تنفيذ الشيفرة. هذه السلوك مشابه لعبارة include والفرق الوحيد هنا هو إن كانت شيفرة ذلك الملف مضمّنة من قبل فإنّها لن تُضمِّنَه مرة أخرى، وترجع include_once القيمة TRUE، وهذا السلوك متوقع من اسم العبارة. يمكن استخدام include_once في الحالات التي يمكن لنفس الملف أن يُضمَّن ويُعالَج لأكثر من مرة خلال مرحلة معيّنة من مراحل تنفيذ الشيفرة، وفي هذه الحالة يمكن تجنب بعض المشاكل مثل إعادة تعريف الدوال ...

require_once في PHP

(PHP 4, PHP 5, PHP 7) عبارة require_once مطابقة للعبارة require باستثناء أن PHP ستتحقق مما إذا كان الملف مضمّنًا أم لا، وذلك لتجنّب تضمينه (require) مرة أخرى. راجع توثيق include_once للمزيد من المعلومات حول طريقة عمل ‎_once، والفرق بينها وبين الدوال التي لا تلحق بها هذه اللاحقة. مصادر صفحة require_once في توثيق PHP الرسمي.

عرض (500 السابقة | 500 التالية) (20 | 50 | 100 | 250 | 500).