نتائج البحث

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

استخراج المتغيرات (Extract Variables)

المشكلة وجود تعبيرٍ (expression) معقِّد يصعُب فهمه. الحل وضع ناتج التعبير أو جزءٍ منه في متغيِّرات (variables) واضحةٍ تُسهِّل الفهم. مثال قبل إعادة التصميم نلاحظ وجود تعبيرٍ شرطيٍّ (conditional expression) معقَّدٍ وبعدّة أجزاء كما في الشيفرة الآتية: في لغة Java: void renderBanner() { if ((platform.toUpperCase().indexOf("MAC") > -1) && (browser.toUpperCase().indexOf("IE") > -1) && wasInitialized() && resize > 0 ) { // افعل شيئًا ...

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

(PHP 4, PHP 5, PHP 7) تُعيد الدالة session_get_cookie_params()‎ مُعطيات ملف تعريف الارتباط (cookie) الخاص بالجلسة. الوصف array session_get_cookie_params ( void ) تُعيد الدالة مُعطيات ملف تعريف الارتباط (cookie) الخاص بالجلسة. القيم المعادة تُعيد الدالة مصفوفة تحتوي على معلومات ملف الارتباط الخاص بالجلسة الحالية (session cookie)، وتتكون المصفوفة من الآتي: lifetime: عُمر ملف الارتباط (cookie lifetime) بالثواني. path: مسار تخزين المعلومات. domain: نطاق تخزين ملف الارتباط. secure: الأمان، بحيث لا يتم إرسال معلومات ملف الارتباط إلا عبر اتصال آمن. httponly: لا يمكن الوصول إلى معلومات ...

تجزئة المتغير المؤقت (Split Temporary Variable)

المشكلة وجود متغيِّرٍ محليّ يُستخدَم لتخزين عدّة قيمٍ مؤقتةٍ (مرحليّة) داخل التابع. الحل استخدام متغيِّراتٍ منفصلةٍ ومستقلّةٍ للقيم المختلفة، بحيث يكون كلَُ متغيِّرٍ مسؤولًا عن تخزين البيانات لمهمةٍ واحدةٍ فقط. مثال قبل إعادة التصميم نلاحظ في الشيفرة الآتية استخدام المتغيِّر temp لتخزين ناتج كلِّ من تعبيريّ المحيط والمساحة: في لغة Java: double temp = 2 * (height + width); System.out.println(temp); temp = height * width; System.out.println(temp); في لغة #C: double temp = 2 * (height + width); Console.WriteLine(temp); temp = height * width; Console.WriteLine(temp); في لغة PHP: $temp ...

Python/pathlib/PurePath/is reserved

 التابع PurePath.is_reserved في بايثون يعيد True عند استخدام النكهة PureWindowsPath إذا كان المسار يُعتبر اسمًا مجوزًا في نظام ويندوز. أما عند استخدام النكهة PurePosixPath فالتابع يعيد False دومًا. عند إجراء استعداءات نظام على مسارات محجوزة فإنها قد تفضل بشكل غامض ويمكن أن يكون لها آثار غير متوقعة. البنية العامة >>> PureWindowsPath('nul').is_reserved() True >>> PurePosixPath('nul').is_reserved() False المعاملات بدون معاملات القيمة المعادة يعيد True عند استخدام النكهة PureWindowsPath إذا كان المسار يُعتبر اسمًا مجوزًا في نظام ويندوز. أما عند استخدام النكهة PurePosixPath فالتابع يعيد False ...

المتغيرات من مصادر خارجية في PHP

نماذج HTML‏ (GET و POST) عند إرسال نموذج إلى شيفرة PHP، فإن المعلومات القادمة من ذاك النموذج تصبح متاحةً بصورة تلقائية للشيفرة. وهناك عدد من الطرائق التي يمكن من خلالها الوصول إلى هذه المعلومات. المثال 1: نموذج HTML بسيط <form action="foo.php" method="post"> Name: <input type="text" name="username" /><br /> Email: <input type="text" name="email" /><br /> <input type="submit" name="submit" value="Submit me!" /> </form> منذ الإصدار 5.4.0، أصبح هناك طريقتان للوصول إلى البيانات التابعة ...

المتغيرات من مصادر خارجية في PHP

نماذج HTML‏ (GET و POST) عند إرسال نموذج إلى شيفرة PHP، فإن المعلومات القادمة من ذاك النموذج تصبح متاحةً بصورة تلقائية للشيفرة. وهناك عدد من الطرائق التي يمكن من خلالها الوصول إلى هذه المعلومات. المثال 1: نموذج HTML بسيط <form action="foo.php" method="post"> Name: <input type="text" name="username" /><br /> Email: <input type="text" name="email" /><br /> <input type="submit" name="submit" value="Submit me!" /> </form> منذ الإصدار 5.4.0، أصبح هناك طريقتان للوصول إلى البيانات التابعة ...

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

(PHP 4, PHP 5, PHP 7) تعيد الدالة get_browser()‎ الميزات التي يدعمها متصفح المستخدم. الوصف mixed get_browser ([ string $user_agent [, bool $return_array = FALSE ]] ) تحاول هذه الدالة تحديد الميزات التي يدعمها متصفح المستخدم من خلال البحث عن معلومات المتصفح في ملف browscap.ini. المعاملات user_agent متصفح المستخدم المراد تحليله. افتراضيًا، تستخدم قيمة ترويسة User-Agent في HTTP لكن يمكنك تمرير قيمة إلى هذا المعامل للبحث عن معلومات متصفحٍ آخر على سبيل المثال. يمكنك تجاوز هذا المعامل بضبط قيمته إلى القيمة ...

الدوال المتغيّرة في PHP

تدعم PHP مفهوم الدوال المتغيّرة والذي يعني أنّه في حال إلحاق قوسين إلى نهاية اسم أحد المتغيّرات، فإنّ اللغة ستبحث عن دالة تحمل الاسم ذاته، وستحاول تنفيذها. يمكن الاستفادة من هذه الميزة في الاستدعاءات الخلفية callbacks، وجداول الدوال وما إلى ذلك. لا تعمل الدوال المتغيرة مع البنى التابعة للغة مثل echo و print و unset()‎ و isset()‎ و empty()‎ و include و require وما شابهها، ولاستخدام أيّ من هذه الدوال كدوال متغيرة يمكن الاستعانة بدوالّ تغليف. المثال 1: مثال على ...

الدوال المتغيّرة في PHP

تدعم PHP مفهوم الدوال المتغيّرة والذي يعني أنّه في حال إلحاق قوسين إلى نهاية اسم أحد المتغيّرات، فإنّ اللغة ستبحث عن دالة تحمل الاسم ذاته، وستحاول تنفيذها. يمكن الاستفادة من هذه الميزة في الاستدعاءات الخلفية callbacks، وجداول الدوال وما إلى ذلك. لا تعمل الدوال المتغيرة مع البنى التابعة للغة مثل echo و print و unset()‎ و isset()‎ و empty()‎ و include و require وما شابهها، ولاستخدام أيّ من هذه الدوال كدوال متغيرة يمكن الاستعانة بدوالّ تغليف. المثال 1: مثال على ...

الطلبات HTTP في Laravel

الوصول إلى الطلب عليك التلميح إلى نوع الصنف Illuminate\Http\Request في وحدة تحكمّك للحصول على نسخة الطلب HTTP الحالي عبر إضافة الاعتماديّة. ستُضاف نسخة الطلب الوارد تلقائيًّا بواسطة حاوي الخدمات: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { /** * خزّن مستخدمًا جديدًا * * @param Request $request * @return Response */ public function store(Request ...

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

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

قد تحتاج في بعض الأحيان إلى استخدام أسماء متغيّرة للمتغيرات، بمعنى أن تعيين اسم المتغيّر واستخدامه يكون بصورة ديناميكية. لتعريف المتغيرات العادية نستخدم الصيغة التالية: <?php $a = 'hello'; ?> أما المتغيّر المتغير (variable variable) فيأخذ قيمة متغيّر معين ويستخدمه كاسم لمتغير آخر. في المثال السابق يمكن استخدام الكلمة hello كاسم لمتغير آخر وذلك باستخدام علامتي $ عند التعبير عن المتغير: <?php $$a = 'world'; ?> في هذه النقطة هناك متغيّران معرّفان ومخزنان في شجرة رموز PHP (أي PHP symbol tree): الأول هو ‎$a ...

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

قد تحتاج في بعض الأحيان إلى استخدام أسماء متغيّرة للمتغيرات، بمعنى أن تعيين اسم المتغيّر واستخدامه يكون بصورة ديناميكية. لتعريف المتغيرات العادية نستخدم الصيغة التالية: <?php $a = 'hello'; ?> أما المتغيّر المتغير (variable variable) فيأخذ قيمة متغيّر معين ويستخدمه كاسم لمتغير آخر. في المثال السابق يمكن استخدام الكلمة hello كاسم لمتغير آخر وذلك باستخدام علامتي $ عند التعبير عن المتغير: <?php $$a = 'world'; ?> في هذه النقطة هناك متغيّران معرّفان ومخزنان في شجرة رموز PHP (أي PHP symbol tree): الأول هو ‎$a ...

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

(PHP 4, PHP 5, PHP 7) تُعيد الدالة session_id()‎ أو تَضبط المعرف الحالي للجلسة. الوصف string session_id ([ string $id ] ) تُعيد الدالة session_id()‎ أو تضبط المعرف الحالي للجلسة. يُمكن استعمال المعرف الثابت للجلسة (constant SID)  لاسترجاع اسم الجلسة ومعرفها في متغير نصي مناسب للإضافة على الروابط (URLs). المعاملات   id إذا حُدد المعامل  id، سيُبدَّل المعرف الحالي للجلسة إليه، ويجب في هذه الحالة استخدام الدالة session_id()‎ قَبل الدالة session_start()‎. بالنسبة للحروف المسموح بِها في التسمية فهي مِن a حتى z ومِن A حتى Z، ومِن ...

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

(PHP 4, PHP 5, PHP 7) تعيد الدالة session_name()‎ أو تضبط اسم الجلسة الحالية. الوصف string session_name ([ string $name ] ) تعيد هذه  الدالة اسم الجلسة الحالية، وإذا أُعطيت قيمة للمعامل name سوف تُحدث الدالة اسم الجلسة بهذه القيمة وتعيد اسم الجلسة القديم. عند استعمال اسم جديد للجلسة، فإن دالة session_name()‎ تُعدل ملف تعريف الارتباط الخاص ببروتوكول ‎(http cookie) HTTP‎، لذلك يجب استعمال الدالة session_name()‎ قبل الدالة session_start()‎ لكي تعمل بطريقة صحيحة بدون أخطاء. المعاملات name هذا المعامل مسؤول عن اسم الجلسة المستعمل في ملفات ...

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

(PHP 4, PHP 5, PHP 7) تضيف الدالة addslashes()‎ الخطوط المائلة العكسية (backslashes). الوصف string addslashes (string $str). تُعيد الدالة سلسلةً نصيةً تسبقها خطوط مائلة عكسية (backslashes) قبل المحارف المُراد تهريبها. تتمثل هذه المحارف فيما يلي:   علامات الاقتباس المفردة (') علامات الاقتباس المزدوجة (") الخطوط المائلة العكسية (\) NUL (البايت NUL) تستخدم الدالة addslashes()‎ لتهريب أحد المحارف المذكورة آنفًا داخل كود برمجي بلغة PHP: <?php $str = "O'Reilly?"; eval("echo '" . addslashes($str) . "';"); ?> قبل نسخة 5.4.0  للغة PHP، كانت ميزة magic_quotes_gpc مُفَعلة ...

التعابير في PHP

تعدّ التعابير إحدى الوحدات البنائية الأكثر أهمية في PHP، ففي هذه اللغة كل ما تكتبه تقريبًا هو عبارة عن تعبير، لذا فإن أبسط وأدقّ تعريف للتعابير هو: "كلّ ما يمتلك قيمة". تعدّ الثوابت والمتغيرات أبسط أشكال التعابير، فعند كتابة ‎$a=5 فإننا نسند '5' إلى ‎$a. ومن الواضح أن '5' تمتلك القيمة 5، أو بعبارة أخرى فإن '5' هي تعبير قيمته 5. (في هذه الحالة '5' هو عدد صحيح ثابت). بعد إجراء عملية الإسناد هذه فإن المتوقع هو أن تكون قيمة ...

التعابير في PHP

تعدّ التعابير إحدى الوحدات البنائية الأكثر أهمية في PHP، ففي هذه اللغة كل ما تكتبه تقريبًا هو عبارة عن تعبير، لذا فإن أبسط وأدقّ تعريف للتعابير هو: "كلّ ما يمتلك قيمة". تعدّ الثوابت والمتغيرات أبسط أشكال التعابير، فعند كتابة ‎$a=5 فإننا نسند '5' إلى ‎$a. ومن الواضح أن '5' تمتلك القيمة 5، أو بعبارة أخرى فإن '5' هي تعبير قيمته 5. (في هذه الحالة '5' هو عدد صحيح ثابت). بعد إجراء عملية الإسناد هذه فإن المتوقع هو أن تكون قيمة ...

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

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

التابع String.reserve()‎ في أردوينو

يحجز التابع reserve()‎ جزءًا من الذاكرة ويخصِّصه للتلاعب بالسلسلة النصية التي استدعيت معه وتعديلها. البنية العامة string.reserve(size) تمثِّل string السلسلة النصية التي سيُحجَز لها جزءٌ من الذاكرة بحجم size. المعاملات size عدد صحيح عديم الإشارة يحدِّد عدد البايتات المراد حجزها من الذاكرة وتخصيصها لعمليات التلاعب بالسلسلة النصية المعطاة والتعديل عليها. القيم المعادة لا يعاد أي شيء. أمثلة مثالٌ على استعمال التابع reserve()‎: String myString; void setup() { // تهيئة منفذ الاتصال التسلسلي وبدئه Serial.begin(9600); while (!Serial) { ...

التابع String.reserve()‎ في أردوينو

يحجز التابع reserve()‎ جزءًا من الذاكرة ويخصِّصه للتلاعب بالسلسلة النصية التي استدعيت معه وتعديلها. البنية العامة string.reserve(size) تمثِّل string السلسلة النصية التي سيُحجَز لها جزءٌ من الذاكرة بحجم size. المعاملات size عدد صحيح عديم الإشارة يحدِّد عدد البايتات المراد حجزها من الذاكرة وتخصيصها لعمليات التلاعب بالسلسلة النصية المعطاة والتعديل عليها. القيم المعادة لا يعاد أي شيء. أمثلة مثالٌ على استعمال التابع reserve()‎: String myString; void setup() { // تهيئة منفذ الاتصال التسلسلي وبدئه Serial.begin(9600); while (!Serial) { ...

الكائنات في 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) للمزيد من المعلومات. التحويل إلى كائن إذا حوّلنا كائنًا إلى كائنٍ آخر فلن يُعدَّل فيه شيء، أما إذا حولنا قيمةً من أي نوعٍ آخر إلى كائن، فستُنشَأ نسخةً جديدةً من ...

المتغيرات المعرفة مسبقًا في PHP

تقدّم PHP عددًا كبيرًا من المتغيرات المعرّفة مسبقًا ضمن الشيفرات العاملة بهذه اللغة، ولكن لا يمكن توثيق الكثير من هذه المتغيّرات بشكل كامل لأنّها تعتمد على الخادم الذي تعمل عليه الشيفرة، ونسخة الخادم وإعداداته، وعوامل أخرى. بعض هذه المتغيّرات غير متوفّر عند تشغيل PHP في سطر الأوامر. للحصول على قائمة بهذه المتغيرات يمكنك الاطلاع على قسم المتغيّرات المحجوزة والمعرّفة مسبقًا. تحذير: في الإصدار 4.2.0 وما بعده من PHP أصبح الموجّه register_globals يحمل القيمة off، وهو من التغييرات الكبيرة في PHP. ...

المتغيرات المعرفة مسبقًا في PHP

تقدّم PHP عددًا كبيرًا من المتغيرات المعرّفة مسبقًا ضمن الشيفرات العاملة بهذه اللغة، ولكن لا يمكن توثيق الكثير من هذه المتغيّرات بشكل كامل لأنّها تعتمد على الخادم الذي تعمل عليه الشيفرة، ونسخة الخادم وإعداداته، وعوامل أخرى. بعض هذه المتغيّرات غير متوفّر عند تشغيل PHP في سطر الأوامر. للحصول على قائمة بهذه المتغيرات يمكنك الاطلاع على قسم المتغيّرات المحجوزة والمعرّفة مسبقًا. تحذير: في الإصدار 4.2.0 وما بعده من PHP أصبح الموجّه register_globals يحمل القيمة off، وهو من التغييرات الكبيرة في PHP. ...

الدوال المجهولة في PHP

الدوال المجهولة (anonymous functions) التي تُعرَف أيضًا بالمصطلح (closures) تسمح بإنشاء دالة ليس لها اسم محدد. غالبًا ما تستخدم هذه الدوال للحصول على قيمتها كمعاملات استدعاء (راجع callback) ولها استخدامات أخرى. تطبق اللغة الصنف Closure لاستخدام الدوال المجهولة. المثال 1: الدوال المجهولة <?php echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world'); // outputs helloWorld ?> يمكن استخدام الدوال المجهولة كقيم للمتغيرات، وتحول اللغة مثل هذه التعبيرات إلى نسخ instances من الصنف الداخلي Closure. يمكن إسناد الدالة المجهولة إلى متغير بنفس ...

الدوال المجهولة في PHP

الدوال المجهولة (anonymous functions) التي تُعرَف أيضًا بالمصطلح (closures) تسمح بإنشاء دالة ليس لها اسم محدد. غالبًا ما تستخدم هذه الدوال للحصول على قيمتها كمعاملات استدعاء (راجع callback) ولها استخدامات أخرى. تطبق اللغة الصنف Closure لاستخدام الدوال المجهولة. المثال 1: الدوال المجهولة <?php echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world'); // outputs helloWorld ?> يمكن استخدام الدوال المجهولة كقيم للمتغيرات، وتحول اللغة مثل هذه التعبيرات إلى نسخ instances من الصنف الداخلي Closure. يمكن إسناد الدالة المجهولة إلى متغير بنفس ...

الثوابت في بايثون

تقدم بايثون مجموعة من الثوابت، بعضها في مجال الأسماء الداخلي، أما البعض الآخر فيضاف من قبل الوحدة site إلى مفسّر بايثون التفاعلي. ثوابت في مجال الأسماء الداخلي False يمثّل هذا الثابت القيمة الخاطئة للنوع bool. لا تسمح اللغة بإسناد أي قيمة إلى هذا الثابت وستطلق الخطأ SyntaxError عند محاولة القيام بذلك. True يمثّل هذا الثابت القيمة الصحيحة للنوع bool. لا تسمح اللغة بإسناد أي قيمة إلى هذا الثابت وستطلق الخطأ SyntaxError عند محاولة القيام بذلك. None هذا الثابت هو القيمة ...

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

(PHP 4 >= 4.0.4, PHP 5, PHP 7) تتحقّق الدالة is_null()‎‎‎‎‎‎‎‎ إذا ما كانت قيمة المتغيّر هي عَدَم NULL. الوصف bool is_null ( mixed $var ) تتحقّق من أنّ قيمة المتغيّر المُعطى هي NULL. المعاملات var القيمة المطلوب التّحقّق منها. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر NULL، و FALSE فيما عدا ذلك. أمثلة المثال 1: أمثلة على الدالة is_null()‎ <?php error_reporting(E_ALL); $foo = NULL; var_dump(is_null($inexistent), is_null($foo)); ?> ينتج عن المثال السّابق ما يلي: Notice: Undefined variable: inexistent in ... bool(true) bool(true) انظر أيضًا النّوع NULL. الدالة ...

البنية print‎ في PHP

(PHP 4, PHP 5, PHP 7) تطبع print‎ سلسلةً نصيةً. الوصف int print ( string $arg ) تُخرِج print‎‎ المعامل arg. ليست print في الواقع دالةً حقيقية إنما هي بنيةٌ من بنى اللغة (language construct)، لذلك لا حاجة لاستخدام الأقواس لتمرير الوسائط إليها. الاختلافان الرئيسيّان مع البنية echo هما أنَّ print لا تقبل إلا معاملًا واحدًا وأنها تعيد القيمة 1 دائمًا. المعاملات arg البيانات المدخلة. القيم المعادة تعيد 1 دائمًا. الأمثلة مثال 1: أمثلة على البنية print <?php print("Hello World"); print "print() also ...

اختبارات HTTP في Laravel

مقدمة يزوّدك Laravel بـواجهة برمجيّة سلسة للقيام بطلبات HTTP لتطبيقك وتحليل الناتج. على سبيل المثال، القِ نظرة على الاختبار التالي: <?php namespace Tests\Feature; use Tests\TestCase; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithoutMiddleware; class ExampleTest extends TestCase {    /**     * مثال اختبار بسيط.     *     * @return void     */    public function testBasicTest()    {        $response = $this->get('/');        $response->assertStatus(200);    } } ينشئ التابع get طلب GET للتطبيق، بينما يتأكد التابع assertStatus من أنّ الرد المُعاد يحتوي على رمز حالة HTTP المعطى. إضافةً إلى هذا التأكد البسيط، يحتوي Laravel على مجموعة من توابع التأكيد لفحص المعلومات المتعلقة بالرد، كترويسات الرد (response headers)‎، ومحتوى الرد، وبنية ...

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

(PHP 4, PHP 5, PHP 7) تدمر الدالة session_destroy()‎ جميع البيانات المُسجلة في الجلسة. الوصف bool session_destroy ( void ) تُدمر الدالة جميع البيانات المُصاحبة للجلسة الحالية. ولا تقوم بمسح أيًا مِن المُتغيرات العامة (global variables) أو ملفات تعريف الارتباط للدالة. ولاستخدام المُتغيرات مُجددًا، يجب استخدام الدالة ()session_start. ملاحظة:  لست مضطرًا لاستدعاء الدالة session_destroy()‎ في الكود العادي. نظف المصفوفة ‎$_SESSION بدلًا مِن تدمير بيانات الجلسة. لتدمير الجلسة كلها يجب مسح معرّف الجلسة وإذا كان محفوظًا في ملف تعريف الارتباط، يجب مسحه كذلك، ويُمكن استعمال ...

نطاق المتغيرات في PHP

النطاق (scope) هو السياق الذي تعرّف ضمنه المتغيرات، وفي معظم الحالات تمتلك جميع متغيرات PHP نطاقًا واحدًا فقط، ويمتد هذا النطاق ليشمل الملفات المضمّنة (included) والمطلوبة (required) كذلك. فمثلاً: <?php $a = 1; include 'b.inc'; ?> هنا سيكون المتغير ‎$a متوفّراً ضمن شيفرة b.inc المضمّنة، ولكن يصبح النطاق ضمن الدوال المعرّفة من طرف المستخدم نطاقًا محلّيًا (local scope)، وتكون جميع المتغيرات المستخدمة داخل الدالة محدّدة بصورة تلقائية ضمن النطاق المحلي. مثلًا: <?php // نطاق عام $a = 1; function test() { // ...

نطاق المتغيرات في PHP

النطاق (scope) هو السياق الذي تعرّف ضمنه المتغيرات، وفي معظم الحالات تمتلك جميع متغيرات PHP نطاقًا واحدًا فقط، ويمتد هذا النطاق ليشمل الملفات المضمّنة (included) والمطلوبة (required) كذلك. فمثلاً: <?php $a = 1; include 'b.inc'; ?> هنا سيكون المتغير ‎$a متوفّراً ضمن شيفرة b.inc المضمّنة، ولكن يصبح النطاق ضمن الدوال المعرّفة من طرف المستخدم نطاقًا محلّيًا (local scope)، وتكون جميع المتغيرات المستخدمة داخل الدالة محدّدة بصورة تلقائية ضمن النطاق المحلي. مثلًا: <?php // نطاق عام $a = 1; function test() { // ...

الدالة 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()‎ وسيلة مفضَّلة لقراءة ...

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة empty()‎ إذا كان المتغير فارغًا. الوصف bool empty ( mixed $var ) الدالة empty()‎ تتحقق من أنَّ المتغير يُعدّ فارغًا، ويعدّ المتغير فارغًا إذا كان غير موجودٍ أو يساوي القيمة NULL، الدالة empty()‎ لا تولد تحذيرًا إذا لم يكن المتغير معرفًا. المعاملات var المتغير الذي نريد اختبار قيمته إن كان فارغةً أم لا. ملاحظة: سابقاً في PHP 5.5، لم تكن تدعم الدالةempty()‎إلا المتغيرات فقط وتمرير أي شيًء آخر سوف يؤدي إلى خطأ من ...

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة empty()‎ إذا كان المتغير فارغًا. الوصف bool empty ( mixed $var ) الدالة empty()‎ تتحقق من أنَّ المتغير يُعدّ فارغًا، ويعدّ المتغير فارغًا إذا كان غير موجودٍ أو يساوي القيمة NULL، الدالة empty()‎ لا تولد تحذيرًا إذا لم يكن المتغير معرفًا. المعاملات var المتغير الذي نريد اختبار قيمته إن كان فارغةً أم لا. ملاحظة: سابقاً في PHP 5.5، لم تكن تدعم الدالةempty()‎إلا المتغيرات فقط وتمرير أي شيًء آخر سوف يؤدي إلى خطأ من ...

encodeURI()‎

الدالة encodeURI()‎ تُرمِّز روابط URI (اختصار للعبارة Uniform Resource Identifier) بتبديل كل نسخة من محارف معيّنة إلى عبارة مُهرَّبة (escape sequences) أو أكثر والتي تُمثِّل ترميز UTF-8 للمحرف المعني. البنية العامة encodeURI(URI) encodedURI رابط URI كامل. القيمة المعادة سلسلة نصية تُمثِّل النسخة المُرمَّزة من رابط URI. الوصف الدالة encodeURI لا تُرمِّز المحارف التي لها معنى خاص (المحارف المحجوزة [reserved charachters]) في روابط URI، فالمثال الآتي يُظهِر ما الذي يمكن أن يحتويه رابط URI، لاحظ أنَّ بعض المحارف فيه تُستخدَم لإعطاء ...

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

توفِّر هذه الدوال معلوماتٍ إضافيةً عن المتغيرات، راجع صفحة المتغيرات للمزيد من المعلومات عنها. boolval()‎ إعطاء  القيمة المنطقيّة لمتغيّر ما. doubleval()‎ هي اسم بديل (alias) للدالة floatval()‎. floatval()‎ إعطاء قيمة من نوع عدد عشري (float) لمتغيّر ما. get_defined_vars()‎ إعادة مصفوفة تحتوي على كل المتغيّرات المُعرَّفة. get_resource_type()‎ إعادة نوع المورد المُعطى لها. gettype()‎ إعادة نوع المتغيّر. intval()‎ إعادة قيمة من نوع عدد صحيح (integer) لمتغيّر ما. is_array()‎ التّحقّق ما إذا كان المتغيّر مصفوفةً. is_bool()‎ التّحقّق ما إذا كان المتغيّر قيمةً منطقيةً (boolean). is_callable()‎ التّحقّق من القدرة على استدعاء ...

استخراج التوابع (Extract Methods)

المشكلة وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل نقل الشيفرة إلى تابعٍ (method) أو دالةٍ (function) جديدة والاستعاضة عن الجزء (بمكانه السابق) باستدعاءٍ لهذا التابع الجديد. مثال قبل إعادة التصميم نلاحظ وجود جزء من الشيفرة لطباعة بعض البيانات (التفاصيل)، والتي يمكن عزلها بتابعٍ جديد، الشيفرة قبل إعادة التصميم بالشكل: في لغة Java: void printOwing() { printBanner(); // طباعة التفاصيل System.out.println("name: " + name); System.out.println("amount: " + getOutstanding()); } في لغة #C: void PrintOwing() { PrintBanner(); ...

إزالة الإسناد إلى المعاملات (Remove Assignments to Parameters)

المشكلة إسناد قيمةٍ ما إلى أحد المعاملات (parameter) داخل التابع (method body). الحل استخدام متغيِّرٍ محليٍّ (local variable) بدلًا من المعامل. مثال قبل إعادة التصميم نلاحظ وجود عمليّة إسنادٍ (من بعد الإنقاص بمقدار 2) إلى معامل التابع الوارد باسم inputVal: في لغة Java: int discount(int inputVal, int quantity) { if (inputVal > 50) { inputVal -= 2; } //... } في لغة #C: int Discount(int inputVal, int quantity) { if (inputVal > 50) ...

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة isset()‎ ما إذا كان المتغير معرفًا وليس NULL. الوصف bool isset ( mixed $var [, mixed $... ] ) إذا ألغي تعريف أحد المتغيرات باستخدام الدالة unset()‎، فسوف يؤدي ذلك إلى إلغاء وجوده كليًا من السكربت، ويمكن استخدام الدالة isset للتحقق من وجود المتغير وستُعاد قيمة false عند فحص المتغير الذي يحمل القيمة NULL ،ونلاحظ أيضاً أن القيمة الحرفية الفارغة ("0\"، التي تسمى null character) لا تكافئ القيمة الثابتة NULL في PHP. ويمكن ...

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة isset()‎ ما إذا كان المتغير معرفًا وليس NULL. الوصف bool isset ( mixed $var [, mixed $... ] ) إذا ألغي تعريف أحد المتغيرات باستخدام الدالة unset()‎، فسوف يؤدي ذلك إلى إلغاء وجوده كليًا من السكربت، ويمكن استخدام الدالة isset للتحقق من وجود المتغير وستُعاد قيمة false عند فحص المتغير الذي يحمل القيمة NULL ،ونلاحظ أيضاً أن القيمة الحرفية الفارغة ("0\"، التي تسمى null character) لا تكافئ القيمة الثابتة NULL في PHP. ويمكن ...

البنية echo في PHP

(PHP 4, PHP 5, PHP 7) تعرض ‎echo سلسلةً نصيةً وحيدة أو عدة سلاسل نصية. الوصف void echo ( string $arg1 [, string $... ] ) تُخرِج echo كل المعاملات، ولا تضيف إليها سطرًا جديدًا بعدها. لا تعدّ echo دالةً بالمعنى الصريح للكلمة إذ تُعد بنيةً من بنى اللُّغة (‎language construct) لذلك فلستَ مجبرًا على إضافة الأقواس لها. على العكس من بنى اللُّغة الأخرى، فإن echo لا تتصرف مثل الدوال لذلك لا يمكن استخدامها في سياق الدوال دائمًا. إذا أردنا استعمال ...

تبديل المتغير المؤقت إلى استدعاء(Replace Temp with Query)

المشكلة تخزين نتيجة تعبيرٍ ما (expression) في متغيِّر محليٍّ (local variable) لاستخدامه لاحقًا في الشيفرة. الحل نقل التعبير بأكمله إلى تابعٍ (method) مستقلٍ يعيد نتيجته، وعندها سيكون استدعاء هذا التابع بديلًا عن استخدام المتغيِّر (variable)، ومن الممكن أيضًا دمج هذا التابع مع توابع أخرى عند الحاجة للقيام بذلك. مثال قبل إعادة التصميم نلاحظ في الشيفرة الآتية وجود متغيِّرٍ مؤقتٍ باسم basePrice لتخزين القيمة الناتجة عن تنفيذ التعبير الرياضيّ بمعامل الجداء (أي المعامل *)، وسيُستخدَم هذا المتغيِّر لاحقًا في الأجزاء الشرطيّة ...

التابع String.trim()‎ في أردوينو

يزيل التابع trim()‎ جميع المسافات البيضاء من بداية ونهاية السلسلة النصية التي استدعيت معه. بدءًا من الإصدار 1.0، أصبح التابع يعدل السلسلة النصية المعطاة نفسها بدلًا من أن يعيد سلسلة نصية أخرى ناتجة عن عملية إزالة المسافات البيضاء من السلسلة النصية الأصلية. وبالتالي، كن حذرًا من استعمال هذه الدالة.  البنية العامة string.trim() تمثِّل string السلسلة النصية التي يراد حذف المسافات البيضاء من بدايتها ونهايتها. القيم المعادة لا يعاد أي شيء. أمثلة مثال على استعمال التابع remove()‎: String stringValue = " ...

التابع String.trim()‎ في أردوينو

يزيل التابع trim()‎ جميع المسافات البيضاء من بداية ونهاية السلسلة النصية التي استدعيت معه. بدءًا من الإصدار 1.0، أصبح التابع يعدل السلسلة النصية المعطاة نفسها بدلًا من أن يعيد سلسلة نصية أخرى ناتجة عن عملية إزالة المسافات البيضاء من السلسلة النصية الأصلية. وبالتالي، كن حذرًا من استعمال هذه الدالة.  البنية العامة string.trim() تمثِّل string السلسلة النصية التي يراد حذف المسافات البيضاء من بدايتها ونهايتها. القيم المعادة لا يعاد أي شيء. أمثلة مثال على استعمال التابع remove()‎: String stringValue = " ...

الواجهات الساكنة (Facades) في Laravel

مقدمة تُوفِّر الواجهات الساكنة واجهة "ساكنة" (static) للأصناف المتوافرة في حاوي خدمات تطبيقك. يأتي Laravel مع عدة واجهات تمكنك من استخدام كل خاصيات Laravel تقريبًا. تمثل واجهات Laravel الساكنة "وسطاء ساكنات" (static proxies) للأصناف الأساسية بحاوي الخدمات مما يوفر كل فوائد الصِّيغ (syntax) المقتضبة والمُعبِّرة مع الحفاظ على قابلية الاختبار ومرونة أكبر من الدالات الساكنة التقليدية. كل واجهات Laravel الساكنة مُعرَّفةٌ في مجال الأسماء Illuminate\Support\Facades. يمكننا الوصول لواجهة ساكنة بهذه الطريقة: use Illuminate\Support\Facades\Cache; Route::get('/cache', function () { return ...

PHP/Topics

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

Document.cookie

تُستعمل هذه الخاصيّة للحصول على ملفّات الارتباط (cookies) المُرتبطة بالمُستند الحالي وضبطها، للتعامل مع ملفّات الارتباط ببساطة أكثر، انظر إطار العمل البسيط هذا. البنية العامة الحصول على جميع ملفّات تعريف الارتباط المتاحة allCookies = document.cookie; المُتغيّر allCookies أعلاه عبارة عن سلسلة نصيّة تحتوي على قائمة بجميع ملفات الارتباط مفصولة بفاصلة منقوطة (;)، وهي على شكل مفتاح=قيمة. ضبط ملفّ ارتباط جديد document.cookie = newCookie; في الشيفرة أعلاه، المُتغيّر newCookie عبارة عن سلسلة نصيّة على شكل مفتاح=قيمة. لاحظ أنّك تستطيع أن تضبط أو تُحدّث ...

التابع String.remove()‎ في أردوينو

يحذف التابع remove()‎ عددًا محدَّدًا من محارف السلسلة النصية التي استدعيت معها. انتبه إلى أنَّ هذه الدالة تعدِّل نفس السلسلة النصية المعطاة، لذا كن حذرًا عند استعمالها. البنية العامة string.remove(index) string.remove(index, count) تمثِّل string السلسلة النصية التي يراد حذف محارفها التي تبدأ عند المحرف ذي الفهرس index وحتى نهاية السلسلة أو بعدد المحارف count فقط. المعاملات index عددٌ صحيحٌ عديم الإشارة يمثِّل فهرس بداية المحارف المراد حذفها. count عددٌ صحيحٌ عديم الإشارة يمثِّل عدد العناصر المراد حذفها بدءًا من المحرف ذي الفهرس ...

التابع String.remove()‎ في أردوينو

يحذف التابع remove()‎ عددًا محدَّدًا من محارف السلسلة النصية التي استدعيت معها. انتبه إلى أنَّ هذه الدالة تعدِّل نفس السلسلة النصية المعطاة، لذا كن حذرًا عند استعمالها. البنية العامة string.remove(index) string.remove(index, count) تمثِّل string السلسلة النصية التي يراد حذف محارفها التي تبدأ عند المحرف ذي الفهرس index وحتى نهاية السلسلة أو بعدد المحارف count فقط. المعاملات index عددٌ صحيحٌ عديم الإشارة يمثِّل فهرس بداية المحارف المراد حذفها. count عددٌ صحيحٌ عديم الإشارة يمثِّل عدد العناصر المراد حذفها بدءًا من المحرف ذي الفهرس ...

الحزمة urllib‎‎ في بايثون

urllib هي حزمة تتضمّن مجموعة من الوحدات التي تتعامل مع عناوين URL: الوحدة urllib.request: تقدّم الوحدة عددًا من الدوال والأصناف التي تساعد في فتح عناوين URL‏ (HTTP في الغالب) لاستخدامها في عمليات مختلفة مثل الاستيثاق البسيط وإعادة التوجيه والتعامل مع الكعكات cookies وغيرها. الوحدة urllib.error: تعرّف الوحدة الأصناف الخاصة بالاستثناءات التي تُطلقها الوحدة urllib.request. الوحدة urllib.parse: تعرّف هذه الوحدة واجهة معيارية لتحليل عناوين URL. الوحدة urllib.robotparser: تقدّم الوحدة صنفًا واحدًا يساعد في تحليل ملفات robots.txt. مصادر صفحة URL handling modules ...

عوامل المقارنة في PHP

تتيح عوامل المقارنة -كما هو واضح من اسمها- مقارنة قيمتين مختلفتين. يمكنك أيضًا الاطلاع على جداول مقارنة الأنواع حيث ستجد العديد من الأمثلة المرتبطة بإجراء المقارنات بين الأنواع. مثال الاسم النتيجة ‎$a == $b يساوي TRUE إن كان المتغير ‎$a مساويًا للمتغير ‎$b بعد تعديل الأنواع. ‎$a === $b مطابق TRUE إن كان ‎$a مساويًا للمتغير ‎$b، وكانا من النوع نفسه. ‎$a != $b لا يساوي TRUE إن كان ‎$a غير مساوٍ للمتغير ‎$b بعد تعديل الأنواع. ‎$a <> $b لا ...

عوامل المقارنة في PHP

تتيح عوامل المقارنة -كما هو واضح من اسمها- مقارنة قيمتين مختلفتين. يمكنك أيضًا الاطلاع على جداول مقارنة الأنواع حيث ستجد العديد من الأمثلة المرتبطة بإجراء المقارنات بين الأنواع. مثال الاسم النتيجة ‎$a == $b يساوي TRUE إن كان المتغير ‎$a مساويًا للمتغير ‎$b بعد تعديل الأنواع. ‎$a === $b مطابق TRUE إن كان ‎$a مساويًا للمتغير ‎$b، وكانا من النوع نفسه. ‎$a != $b لا يساوي TRUE إن كان ‎$a غير مساوٍ للمتغير ‎$b بعد تعديل الأنواع. ‎$a <> $b لا ...

أنواع المتغيرات في Bash

التعيين العام للقيَم لم نركز كثيرًا في الشرح السابق لصدفة Bash على أنواع المتغيرات التي كنا نعيِّنها لأن Bash تستطيع التعامل مع أنواع متعددة من المتغيرات والمعامِلات، ونتيجة لذلك فإن متغيراتنا يمكنها احتواء أي نوع نختاره من البيانات، انظر المثال التالي للتوضيح: [hsoub in ~] VARIABLE=12 [hsoub in ~] echo $VARIABLE 12 [hsoub in ~] VARIABLE=string [hsoub in ~] echo $VARIABLE string وستكون حالات تريد فيها تجنب هذا السلوك من المثال السابق حين تتعامل مع أرقام الهواتف وغيرها مثلًا، وقد تحتاج أن تحدد متغيرًا ثابتًا (Constant ...

الوحدة urllib.response‎‎ في بايثون

تعرّف وحدة urllib.response دوالَّ وأصنافًا تقدّم واجهة مصغّرة شبيهة بواجهة التعامل مع الملفات، وتتضمّن الدالتين read()‎ و readline()‎. كائن الاستجابة الاعتيادي هو نسخة من addinfourl والتي تعرف التابع info()‎ الذي يعيد الترويسات وتابع geturl()‎ الذي يعيد عنوان URL. تستخدم الدوال المعرّفة في هذه الوحدة بواسطة الوحدة urllib.request. انظر أيضًا الوحدة urllib.request: تقدّم الوحدة عددًا من الدوال والأصناف التي تساعد في فتح عناوين URL‏ (HTTP في الغالب) لاستخدامها في عمليات مختلفة مثل الاستيثاق البسيط وإعادة التوجيه والتعامل مع الكعكات cookies وغيرها. مصادر ...

التابع String.concat()‎ في أردوينو

يضيف التابع concat()‎ المعامل المُمرَّر إليه إلى السلسلة النصية التي استدعيت معه. البنية العامة string.concat(parameter) تمثِّل string السلسلة النصية المراد إضافة قيمة المعامل parameter إليها. المعاملات parameter القيمة المراد إضافتها إلى السلسلة النصية المعطاة. أنواع البيانات المسموح بها هي: الكائن String، وسلسلة نصية، ومحرف، وبايت، وعدد صحيح، وعدد صحيح عديم الإشارة، وعدد طويل، وعدد طويل عديم الإشارة، وعدد عشري، وعدد عشري مضاعف، و ‎__FlashStringHelper(F() macro)‎. القيم المعادة تعاد القيمة true المنطقية إن نجحت العملية، أو القيمة false إن فشلت العملية ولم ...

التابع String.concat()‎ في أردوينو

يضيف التابع concat()‎ المعامل المُمرَّر إليه إلى السلسلة النصية التي استدعيت معه. البنية العامة string.concat(parameter) تمثِّل string السلسلة النصية المراد إضافة قيمة المعامل parameter إليها. المعاملات parameter القيمة المراد إضافتها إلى السلسلة النصية المعطاة. أنواع البيانات المسموح بها هي: الكائن String، وسلسلة نصية، ومحرف، وبايت، وعدد صحيح، وعدد صحيح عديم الإشارة، وعدد طويل، وعدد طويل عديم الإشارة، وعدد عشري، وعدد عشري مضاعف، و ‎__FlashStringHelper(F() macro)‎. القيم المعادة تعاد القيمة true المنطقية إن نجحت العملية، أو القيمة false إن فشلت العملية ولم ...

المعامل ‎[]=‎‎ الخاص بالصنف Thread في روبي

يعيّن المعامل [] عندما يُستدعى بالشكل thr[sym] = obj قيمة المتغير sym محلي الليف (fiber-local variable)، باستخدام إما الرمز أو السلسلة النصية obj أو ينشئها. ويسمى آنذاك معامل تعيين الخاصيات. بالنسبة للمتغيرات محلية المهمة الفرعية (thread-local variables)، يرجى الاطلاع على thread_variable_set و thread_variable_get. البنية العامة thr[sym] = obj→ obj‎ القيمة المعادة تعاد قيمة المتغير محلي الليف (fiber-local variable) بعد تعيينها إلى القيمة obj. انظر أيضًا المعامل []: يُعيد قيمة متغير محلي الليف fiber) local variable، أو الليف الأصلي للمهمة الفرعية الحالية ...

التابع Thread.thread_variable?‎‎ في روبي

يتحقق التابع thread_variable?‎ إن كانت السلسلة النصية أو الرمز المعطى موجودًا كمتغير محلي للمهمة الفرعية (thread-local variable). لاحظ أنَّ هذه المتغيرات ليست متغيرات محلية الألياف (fiber local variables). يرجى الاطلاع على صفحة المعامل [] والتابع thread_variable_get لمزيد من التفاصيل. البنية العامة thread_variable?(key)→ true or false‎ المعاملات key‎ سلسلة نصية أو رمز. القيمة المعادة تعاد القيمة true إن كانت السلسلة النصية أو الرمز key المعطى موجودًا كمتغير محلي للمهمة الفرعية (thread-local variable)، وإلا فستعاد القيمة false. أمثلة مثال على استخدام التابع thread_variable?‎: ...

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

(PHP 4, PHP 5, PHP 7) الدالة is_long()‎ هي اسم بديل (alias) للدالة is_int()‎. الوصف هذه الدالة هي اسم بديل (alias) للدالة is_int()‎. مصادر صفحة الدالة is_long في توثيق PHP الرسمي.

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

(PHP 4, PHP 5, PHP 7) تستخلص الدالة var_dump()‎‎‎ معلومات حول المتغيّر. الوصف void var_dump ( mixed $expression [, mixed $... ] ) تعرض هذه الدالة معلومات مُنظَّمة حول واحد أو أكثر من التعابير (expressions) بما في ذلك نوعها وقيمتها. تُستكشف المصفوفات والكائنات بشكل تكراري مع قيم بغرض إظهار البنية. تُعاد كافة خصائص الكائنات المحميّة والخاصّة والعامّة ما لم يعتمد الكائن التابع debugInfo()‎__ (اعتُمِدَ في إصدار PHP 5.6.0). فائدة: كما هو الحال مع أي شيء يُخرِج نتائجه مباشرةً إلى المتصفّح، يُمكِن ...

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

(PHP 4, PHP 5, PHP 7) تتحقّق الدالة is_float()‎‎‎‎‎‎‎ إذا ما كان المتغيّر عددًا عشريًّا. الوصف bool is_float ( mixed $var ) تجد إذا ما كان نوع المتغيّر المُعطى عددًا عشريًّا. ملاحظة: لمعرفة إذا ما كان المتغيّر عددًا أو سلسلةً نصّيّةً (كما في حقول الإدخال [form input] إذ يكون سلسلة نصّيّة دومًا)، فاستخدم الدالة is_numeric()‎. المعاملات var القيمة المطلوب التّحقّق منها. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر عددًا عشريًّا، و FALSE فيما عدا ذلك. أمثلة المثال 1: أمثلة على ...

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

(PHP 4, PHP 5, PHP 7) تُعطي الدالة unserialize()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ قيمة بلغة PHP انطلاقًا من تمثيل مُخزَّن. الوصف mixed unserialize ( string $str [, array $options ] ) تأخذ الدالة unserialize()‎ متغيّرًا متسلسلًا واحدًا وتُحوِّله مرّة أخرى إلى قيمة PHP. تحذير: لا تُمرِّر مُدخَلات المستخدم غير الموثوقة إلى الدالة unserialize()‎ بغض النظر عن قيم المُعامِل options للأصناف المسموحة allowed_classes. قد ينتج عن فك التّسلسل تحميل وتنفيذ شيفرة ما وذلك نظرًا لاستنساخ الكائنات والتحميل التلقائي، ويُمكِن للمستخدم الضار استغلال ذلك. استخدم صيغة تبادل ...

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

(PHP 4 >= 4.2.0, PHP 5, PHP 7) تُعطي الدالة floatval()‎‎ قيمة من نوع عدد عشري (float) لمتغيّر ما. الوصف float floatval ( mixed $var ) تُعطي قيمة من نوع عدد عشري للمتغيّر var. المعاملات var قد يكون من أي نوع عددي. لا يجب استخدام الدالة floatval()‎ مع الكائنات، وينتج عن فعل ذلك خطأ من مستوى E_NOTICE وإعادة القيمة 1. القيم المعادة قيمة من نوع عدد عشري للمتغير المُعطى. تُعيد المصفوفات الفارغة القيمة 0، والمصفوفات غير الفارغة القيمة 1. تُعيد السّلاسل ...

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

(PHP 4, PHP 5, PHP 7) الدالة is_real()‎‎ هي اسم بديل (alias) للدالة is_float()‎. الوصف هذه الدالة هي اسم بديل (alias) للدالة is_float()‎. مصادر صفحة الدالة is_real في توثيق PHP الرسمي.

الدالة 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()‎ ...

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة is_numeric()‎‎‎‎‎‎‎‎‎ ما إذا كان المتغيّر عدديًّا أو سلسلة نصّيّة عدديّة. الوصف bool is_numeric ( mixed $var ) تُحدِّد ما إذا كان المتغيّر المُعطى عدديًّا، تتكوّن السّلاسل النصّيّة العدديّة من إشارة اختياريّة، وأي عدد مُكوَّن من أرقام، وجزء عشري اختياري، وجزء أسّي اختياري، فبالتالي القيمة 0123.45e6‎+ هي قيمة عدديّة صالحة. لا يُسمَح باستخدام النظام الست عشري (مثل 0xf4c3b00c)، أو النظام الثنائي (مثل 0b10100111001). المعاملات var القيمة المطلوب التّحقّق منها. القيم المعادة تُعيد القيمة TRUE ...

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

(PHP 4 >= 4.0.2, PHP 5, PHP 7) تُعيد الدالة get_resource_type()‎‎‎ نوع المورد المُعطى لها. الوصف string get_resource_type ( resource $handle ) تُعطي هذه الدالة نوع المورد المُعطى لها. المعاملات handle مقبض للمورد المطلوب تقييمه. القيم المعادة عندما يكون المقبض handle عبارة عن مورد، فستُعيد هذه الدالة سلسلة نصّيّة تُمثِّل نوعه. وإن لم تتعرّف هذه الدالة على النّوع تكون القيمة المُعادة هي السلسلة النصّيّة Unknown. إن لم يكن المقبض handle موردًا ستولِّد هذه الدالة خطأً وتُعيد القيمة NULL. سجل التغييرات الإصدار ...

الدالة 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": ...

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة is_object()‎‎‎‎‎‎‎‎‎‎ ما إذا كان المتغيّر كائنًا. الوصف bool is_object ( mixed $var ) تُحدِّد ما إذا كان المتغيّر المُعطى كائنًا. المعاملات var القيمة المطلوب التّحقّق منها. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر كائنًا، و FALSE فيما عدا ذلك. أمثلة المثال 1: أمثلة على الدالة is_object()‎ <?php // تعريف دالة بسيطة لإعادة مصفوفة من الكائن الموجود لدينا function get_students($obj) { if (!is_object($obj)) { return false; ...

الدالة 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 ...

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

(PHP 4 >= 4.0.5, PHP 5, PHP 7) تُحدِّد الدالة is_scalar()‎‎‎‎‎‎‎‎‎‎‎‎ ما إذا كان المتغيّر أوليًا (scalar). الوصف bool is_scalar ( mixed $var ) تُحدِّد ما إذا كان المتغيّر المُعطى أوليًا. المتغيّرات الأولية هي تلك التي تحتوي على عدد صحيح، أو عدد عشري، أو سلسلة نصّيّة، أو قيمة منطقيّة، أمّا الأنواع مصفوفة، وكائن، ومورد ليست قيمًا أولية. ملاحظة: لا تُعامِل الدالة is_scalar()‎ القيم من نوع مورد على أنّها قيم أولية، إذ إنّ الموارد هي نوع بيانات مُجرَّد مُعتمِد حاليًّا على الأعداد ...

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

(PHP 4, PHP 5, PHP 7) تُعطي الدالة strval()‎‎‎‎ قيمة من نوع سلسلة نصّيّة لمتغيّر ما. الوصف string strval ( mixed $var ) تُعطي قيمة من نوع سلسلة نصّيّة للمتغيّر var، لمزيد من المعلومات حول التّحويل إلى السّلاسل النصّيّة يُمكِنك الاطلاع على صفحة توثيق السلاسل النصّيّة. لا تُنسِّق هذه الدالة القيمة المُعادة، إن كنت تبحث عن طريقة لتنسيق قيمة عدديّة كسلسلة نصّيّة فانظر إلى الدالة sprintf()‎ أو الدالة number_format()‎. المعاملات var القيمة العدديّة التي ستُحوَّل إلى سلسلة نصيّة. يُمكِن للقيمة var ...

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

(PHP 4, PHP 5, PHP 7) تُزيل البنية unset()‎‎ تعيين المتغيّر المُعطى. الوصف void unset ( mixed $var [, mixed $... ] ) تُدمِّر البنية unset()‎‎ المتغيّرات المحددة. يختلف سلوك الدالّة unset()‎ عند استدعائها داخل دالّة أخرى اعتمادًا على نوع المُتغيّر الذي تُحاول تدميره. فإذا أزلنا تعيين مُتغيّر عام (global) بداخل دالّة ما فسيدمّر المُتغيّر المحلّي فقط، أمّا المُتغيّر الذي يملك نفس الاسم في المكان الذي نستدعي فيه هذه الدالّة سيحافظ على نفس قيمته كما كانت قبل استدعائها، كما في المثال ...

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة is_resource()‎‎‎‎‎‎‎‎‎‎‎ ما إذا كان المتغيّر موردًا (resource). الوصف bool is_resource ( mixed $var ) تُحدِّد ما إذا كان المتغيّر المُعطى موردًا. المعاملات var القيمة المطلوب التّحقّق منها. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر موردًا، و FALSE فيما عدا ذلك. أمثلة المثال 1: أمثلة على الدالة is_resource()‎ <?php $db_link = @mysql_connect('localhost', 'mysql_user', 'mysql_pass'); if (!is_resource($db_link)) { die('Can\'t connect : ' . mysql_error()); } ?> ملاحظات لا تُعدُّ الدالة is_resource()‎ طريقة فحص صارمة للنوع، ...

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

(PHP 4, PHP 5, PHP 7) تتحقّق الدالة is_bool()‎‎‎‎‎ إذا ما كان المتغيّر قيمةً منطقيةً (boolean). الوصف bool is_bool ( mixed $var ) تتحقّق هذه الدالة إذا ما كان المتغيّر المُعطى قيمةً منطقيةً. المعاملات var المتغيّر الذي يجري تقييمه. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر منطقي، و FALSE فيما عدا ذلك. أمثلة المثال 1: أمثلة على الدالة is_bool()‎ <?php $a = false; $b = 0; // لمّا كان المتغيّر a منطقيًا، فستُعيد القيمة‏ TRUE if (is_bool($a) === true) { echo ...

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

(PHP 4, PHP 5, PHP 7) تتحقّق الدالة is_int()‎ إذا ما كان المتغيّر عددًا صحيحًا. الوصف bool is_int ( mixed $var ) تجد إذا ما كان نوع المتغيّر المُعطى عددًا صحيحًا. ملاحظة: لمعرفة إذا ما كان المتغيّر عددًا أو سلسلةً نصّيّةً (كما في حقول الإدخال [form input] إذ يكون سلسلةً نصّيّةً دومًا)، فاستخدم الدالة is_numeric()‎. المعاملات var القيمة المطلوب التّحقّق منها. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر عددًا صحيحًا، و FALSE فيما عدا ذلك. أمثلة المثال 1: أمثلة على ...

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

(PHP 4, PHP 5, PHP 7) الدالة is_double()‎ هي اسم بديل (alias) للدالة is_float()‎. الوصف هذه الدالة هي اسم بديل (alias) للدالة is_float()‎. مصادر صفحة الدالة is_double في توثيق PHP الرسمي.

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

(PHP 4 >= 4.0.4, PHP 5, PHP 7) تُعيد الدالة get_defined_vars()‎‎ مصفوفة تحتوي على كل المتغيّرات المُعرَّفة. الوصف array get_defined_vars ( void ) تُعيد هذه الدالة مصفوفة متعدّدة الأبعاد تحتوي على قائمة بكل المتغيّرات المُعرَّفة سواءً من قبل الخادم أو المستخدم ضمن النطاق (scope) الذي تُستدعى ضمنه. القيم المعادة مصفوفة متعدّدة الأبعاد تحتوي على كل المتغيّرات. أمثلة المثال 1: مثال على الدالة get_defined_vars()‎ <?php $b = array(1, 1, 2, 3, 5, 8); $arr = get_defined_vars(); // $b طباعة قيمة المتغيّر print_r($arr["b"]); // PHP طباعة مسار مفسّر // ...

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

(PHP 4, PHP 5, PHP 7) تتحقّق الدالة is_array()‎‎‎‎ إذا ما كان المتغيّر مصفوفةً. الوصف bool is_array ( mixed $var ) تتحقّق هذه الدالة إذا ما كان المتغيّر المُعطى مصفوفةً أم لا. المعاملات var المتغيّر الذي يجري تقييمه. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر مصفوفة، و FALSE فيما عدا ذلك. أمثلة المثال 1: التحقّق من أنّ المتغيّر مصفوفة <?php $yes = array('this', 'is', 'an array'); echo is_array($yes) ? 'Array' : 'not an Array'; echo "\n"; $no = 'this is a string'; echo is_array($no) ? ...

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

(PHP 4, PHP 5, PHP 7) تُعطي الدالة intval()‎‎‎ قيمة من نوع عدد صحيح (integer) لمتغيّر ما. الوصف int intval ( mixed $var [, int $base = 10 ] ) تُعطي قيمة من نوع عدد صحيح للمتغيّر var، وذلك اعتمادًا على مُعامِل الأساس base للتحويل (القيمة الافتراضيّة هي الأساس 10 والتي تُحوِّل للنظام العشري). لا يجب استخدام الدالة intval()‎ مع الكائنات، وينتج عن فعل ذلك خطأ من مستوى E_NOTICE وإعادة القيمة 1. المعاملات var القيمة العدديّة التي ستُحوَّل إلى عدد صحيح. ...

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

(PHP 4 >= 4.0.6, PHP 5, PHP 7) تتحقّق الدالة is_callable()‎‎‎‎‎‎ من القدرة على استدعاء محتوى المتغيّر كدالة. الوصف bool is_callable ( mixed $var [, bool $syntax_only = FALSE [, string &$callable_name ]] ) تتحقّق هذه الدالة من القدرة على استدعاء محتوى المتغيّر كدالة. يُمكِن لهذه الدالة التحقّق من احتواء متغيّر بسيط على اسم صالح لدالة ما، أو احتواء مصفوفة على كائن مُرمَّز بشكل مناسب واسم دالة ما. المعاملات var القيمة المطلوب التّحقّق منها. syntax_only عندما تكون قيمته TRUE تتحقّق الدالة ...

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

(PHP 4, PHP 5, PHP 7) تطبع الدالة print_r()‎‎‎‎‎‎‎‎‎‎‎‎‎‎ معلومات مقروءة من قبل الإنسان حول متغيّر ما. الوصف mixed print_r ( mixed $expression [, bool $return = FALSE ] ) تعرض الدالة print_r()‎ معلومات حول المتغيّر بطريقة مقروءة من قبل الإنسان. تُظهِر الدوال print_r()‎، و var_dump()‎، و var_export()‎ أيضًا الخصائص المحميّة (protected) والخاصّة (private) للكائنات، ولكنّها لا تُظهِر الأعضاء الثابتة للصنف. المعاملات expression التّعبير المُرَاد طباعته. return نستخدم المُعامِل return إذا كنّا نرغب بالتقاط خرج الدالة print_r()‎. عندما تكون قيمة المُعامِل ...

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

(PHP 4, PHP 5, PHP 7) الدالة is_integer()‎‎ هي اسم بديل (alias) للدالة is_int()‎. الوصف هذه الدالة هي اسم بديل (alias) للدالة is_int()‎. مصادر صفحة الدالة is_integer في توثيق PHP الرسمي.

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

(PHP 5 >= 5.5.0, PHP 7) تُعطي الدالة boolval()‎ القيمة المنطقيّة لمتغيّر ما. الوصف bool boolval ( mixed $var ) تُعيد القيمة المنطقيّة للمتغيّر var. المعاملات var وهو القيمة العدديّة التي ستُحوَّل إلى قيمة منطقيّة. القيم المعادة القيمة المنطقيّة للمتغيّر var. أمثلة المثال 1: أمثلة على الدالة boolval()‎ <?php echo '0: '.(boolval(0) ? 'true' : 'false')."\n"; echo '42: '.(boolval(42) ? 'true' : 'false')."\n"; echo '0.0: '.(boolval(0.0) ...

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

(PHP 4, PHP 5, PHP 7) تُولِّد الدالة serialize()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ تمثيلًا قابلًا للتخزين لقيمة ما. الوصف string serialize ( mixed $value ) تُولِّد‎‎‎‎‎‎‎‎‎‎ تمثيلًا قابلًا للتخزين لقيمة ما. يُفيد هذا في تخزين وتمرير قيم PHP بدون خسارة نوعها وبنيتها. نستخدم الدالة unserialize()‎ لإرجاع السلسلة النصّيّة المتسلسلة إلى قيمة PHP مرّة أخرى. المعاملات value القيمة المطلوب جعلها متسلسلة، تتعامل الدالة serialize()‎ مع كافة الأنواع عدا الموارد، بإمكاننا حتى أن نستخدم serialize()‎ على مصفوفات تحتوي على مراجع تُشير إلى هذه المصفوفة. تُخزَّن المراجع الموجودة ...

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

(PHP 4, PHP 5, PHP 7) تُحدِّد الدالة is_string()‎‎‎‎‎‎‎‎‎‎‎‎‎ ما إذا كان المتغيّر سلسلةً نصيّةً. الوصف bool is_string ( mixed $var ) تُحدِّد ما إذا كان المتغيّر المُعطى سلسلةً نصيّةً. المعاملات var القيمة المطلوب التّحقّق منها. القيم المعادة تُعيد القيمة TRUE إن كان المتغيّر سلسلةً نصيّةً، و FALSE فيما عدا ذلك. أمثلة المثال 1: أمثلة على الدالة is_string()‎ <?php $values = array(false, true, null, 'abc', '23', 23, '23.5', 23.5, '', ' ', '0', 0); foreach ($values as $value) { echo ...

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

(PHP 4 >= 4.2.0, PHP 5, PHP 7) تُعيد أو تُخرِج الدالة var_export()‎‎‎‎ تمثيل سلسلة نصّيّة قابل للتحليل لمتغيّر ما. الوصف mixed var_export ( mixed $expression [, bool $return = FALSE ] ) تحصل الدالة var_export()‎ على معلومات مُنظَّمة حول المتغيّر المُعطى، وهي تشبه الدالة var_dump()‎ مع استثناء وحيد، هو أنّ التمثيل المُعاد عبارة عن شيفرة PHP صالحة. المعاملات expression المتغيّر المطلوب استخراجه. return عندما تكون قيمته TRUE ستُعيد الدالة var_export()‎ تمثيل المتغيّر بدلًا من إخراجه. القيم المعادة تُعيد تمثيل المتغيّر ...

إنشاء التوابع (Composing Methods)

تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods) المشكلة: وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل: نقل الشيفرة إلى تابعٍ (method) ...

إنشاء التوابع (Composing Methods)

تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods) المشكلة: وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل: نقل الشيفرة إلى تابعٍ (method) ...

تبديل التابع إلى كائن التابع (Replace Method with Method Object)

المشكلة وجود تابعٍ طويلٍ بالكثير من المتغيِّرات المحليّة (local variables) المتداخلة والتي تحول دون تطبيق تقنية الحل باستخراج التابع (extract method). الحل نقل التابع إلى صنفٍ (class) مستقلٍ بحيث تصبح متغيِّراته المحليّة حقولًا (fields) لهذا الصنف، وتقسيم التابع بعد ذلك إلى عدّة توابع أصغر في الصنف ذاته. مثال قبل إعادة التصميم نلاحظ وجود العديد من المتغيِّرات المحليّة في التابع price()‎ بالإضافة إلى عملياتٍ أخرى قد تكون طويلةً ومعقَّدة: في لغة Java: class Order { //... public double price() ...

العقود (Contracts) في Laravel

مقدمة عقود Laravel هي مجموعة من الواجهات (interfaces) التي تعرِّف الخدمات المركزية التي يوفرها إطار العمل. على سبيل المثال، يعرِّف العقد Illuminate\Contracts\Queue\Queue  الدوال اللازمة لصف الأعمال في الطوابير، بينما يعرِّف عقد Illuminate\Contracts\Mail \Mailer الدوال اللازمة لإرسال رسائل البريد الإلكتروني. لكل عقد تعريف استخدام (implementation) يوفره إطار العمل. على سبيل المثال، يوفِّر Laravel تعريف استخدام للطابور لعدة أنواع من المشغلات (drivers) كما يوفِّر تعريف استخدام للمُرسِل مشغل بواسطة SwiftMailer. توجد كل عقود Laravel في مستودعات في GitHub. هذا يوفر نقطة مرجعية سريعة لكل ...

الحماية CSRF في Laravel

مقدمة يُسهّل Laravel حماية تطبيقك من الهجمات مُزوّرة الطلب عبر المواقع (cross-site request forgery) واختصارها CSRF. تزويرات الطلب عبر المواقع هن نوع من الاستغلال تُنفّذ فيها أوامر غير مُرخّصة نيابة عن المستخدم المصادق عليهالمُستوثق (authenticated user). يُولّد Laravel تلقائيًّا "رمز" CSRF لكل جلسة مستخدم نشطة يديرها التطبيق. يُستخدم هذا الرمز (token) للتحقّق من كون المستخدم المصادق عليه نفس الشخص الذي يقدّم الطلبات للتطبيق. يجب أن تضيف حقل CSRF مخفي في كل مرّة تعرّف فيها نموذج HTML في تطبيقك كي تتثبت ...

المعامل ‎=~‎‎ الخاص بالصنف Regexp في روبي

يبحث المعامل ‎=~‎ عن تطابق تعبير نمطي ضمن سلسلة نصية. البنية العامة rxp =~ str → integer or nil‎ إذا تم استخدام المعامل ‎=~‎ مع تعبير نمطي حرفي له التقاطات مسماة (named captures)، فسيتم تعيين السلاسل الملتقطة (أو القيمة nil) في متغيرات محلية تحمل نفس أسماء الالتقاطات: /(?<lhs>\w+)\s*=\s*(?<rhs>\w+)/ =~ " x = y " p lhs #=> "x" p rhs #=> "y" إذا لم تكن هناك مطابقة، ستُعطى لتلك المتغيرات القيمة nil: /(?<lhs>\w+)\s*=\s*(?<rhs>\w+)/ =~ " ...

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 فينفّذ في ...

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