نتائج البحث

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

خاصيات الكائنات في PHP

تطلق تسمية "الخاصيات properties" على المتغيّرات المعرّفة ضمن الأصناف، وهناك تسميات أخرى مثل "المعاملات" أو "الحقول"، ولكن سنستخدم التسمية الأولى "الخاصيات" في هذا الدليل. تعرّف الخاصيات باستخدام إحدى الكلمات المفتاحية public، أو protected، أو private تتبعها عبارة تصريح عن متغير اعتيادي. يمكن أن يتضمّن هذا التصريح عملية تهيئة initialization، ولكن يجب أن تكون هذه التهيئة ذات قيمة ثابتة، بمعنى أنّه يجب أن تكون قابلة للمعالجة في وقت التصريف ويجب أن لا تعتمد على المعلومات المتاحة في وقت التشغيل لغرض المعالجة. ...

خاصيات الكائنات في PHP

تطلق تسمية "الخاصيات properties" على المتغيّرات المعرّفة ضمن الأصناف، وهناك تسميات أخرى مثل "المعاملات" أو "الحقول"، ولكن سنستخدم التسمية الأولى "الخاصيات" في هذا الدليل. تعرّف الخاصيات باستخدام إحدى الكلمات المفتاحية public، أو protected، أو private تتبعها عبارة تصريح عن متغير اعتيادي. يمكن أن يتضمّن هذا التصريح عملية تهيئة initialization، ولكن يجب أن تكون هذه التهيئة ذات قيمة ثابتة، بمعنى أنّه يجب أن تكون قابلة للمعالجة في وقت التصريف ويجب أن لا تعتمد على المعلومات المتاحة في وقت التشغيل لغرض المعالجة. ...

المعامل `‎ الخاص بالصنف Kernel في روبي

يعيد المعامل `` مجرى المخرجات القياسي (standard output) لتنفيذ تعليمة في صدفة فرعية (subshell). تُستخدَم الصياغة المضمَّنة ‎%x{...}‎‎ هذا المعامل. تُضبَط حالة العملية (process status) إلى القيمة ‎$?‎‎. البنية العامة `cmd` → string‎ المعاملات cmd يمثل التعليمة المراد تنفيذها. القيمة المعادة يعاد مجرى المخرجات القياسي لتنفيذ تعليمة cmd في صدفة فرعية (subshell). أمثلة مثال على استخدام المعامل ``‎: `date` #=> "Wed Apr ...

try...catch في JavaScript

التعبير البرمجي try...catch يُستخدَم لتجربة قسم من التعابير البرمجية، ويُحدِّد طريقةً لمعالجة الاستثناءات إن رُمِيَت. البنية العامة try { try_statements } [catch (exception_var_1) { catch_statements_1 }] ... [catch (exception_var_2) { catch_statements_2 }] [finally { finally_statements }] try_statements التعابير البرمجية التي ستُنفَّذ والتي قد ترمي استثناءً. catch_statements_1 و catch_statements_2 التعابير البرمجية التي ستُنفَّذ إذا رُمي استثناءٌ في قسم try. exception_var_1 و exception_var_2 مُعرِّف يُستخدَم لتخزين قيمة كائن الاستثناء (exception object) المرتبط مع قسم catch. finally_statements التعابير البرمجية التي ستُنفَّذ بعد إكمال ...

قابلية الرؤية في كائنات PHP

يمكن تعريف قابلية رؤية خاصية أو تابع أو (بدءًا من الإصدار 7.1.0 من اللغة) ثابت بأنّها إلحاق صيغة التصريح بإحدى الكلمات المفتاحية public، أو protected، أو private. يتيح التصريح من نوع public الوصول إلى أعضاء الصنف من أي مكان، ويتيح التصريح من نوع protected الوصول إلى الأعضاء من داخل الصنف نفسه أو الأصناف التي ترث الصنف أو تورّثه، أما التصريح من نوع private فيتيح الوصول إلى الأعضاء من داخل الصنف الذي عرِّف فيه ذلك العضو حصرًا. قابلية رؤية الخاصية يجب ...

قابلية الرؤية في كائنات PHP

يمكن تعريف قابلية رؤية خاصية أو تابع أو (بدءًا من الإصدار 7.1.0 من اللغة) ثابت بأنّها إلحاق صيغة التصريح بإحدى الكلمات المفتاحية public، أو protected، أو private. يتيح التصريح من نوع public الوصول إلى أعضاء الصنف من أي مكان، ويتيح التصريح من نوع protected الوصول إلى الأعضاء من داخل الصنف نفسه أو الأصناف التي ترث الصنف أو تورّثه، أما التصريح من نوع private فيتيح الوصول إلى الأعضاء من داخل الصنف الذي عرِّف فيه ذلك العضو حصرًا. قابلية رؤية الخاصية يجب ...

دوال التعامل مع الكائنات والأصناف في PHP

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

البرمجة كائنية التوجه في PHP

بدءًا من الإصدار الخامس من اللغة، أعيدت كتابة نموذج الكائنات للحصول على أداء أفضل وإضافة المزيد من الميزات، وقد كان هذا من التغييرات الكبيرة في اللغة، إذ قدّم الإصدار الخامس نموذج مكتملًا للكائنات. ومن الميزات التي قدّمها الإصدار الخامس قابلية الرؤية (visibility)، الأصناف والتوابع المجرّدة (abstract) والنهائية (final)، المزيد من التوابع السحرية (magical methods)، الواجهات (interfaces)، الاستنساخ (cloning) والإشارة إلى الأنواع (typehinting). تعامل PHP الكائنات معاملة المراجع (references) أو المقابض (handles)، بمعنى أنّ كلّ متغيّر يتضمن كائنًا مرجعيًا وليس نسخة ...

Function.name

الخاصية Function.name تُعيد اسم الدالة. سمات الخاصية Function.name قابلة للكتابة لا قابلة للإحصاء لا قابلة للضبط نعم لاحظ أنَّ المتصفحات التي كانت تدعم هذه الخاصية قبل أن تصبح معياريةً (في ECMAScript 2015) كانت تضبط السمة configurable إلى false (أي أنَّ هذه الخاصية غير قابلة للضبط). أمثلة اسم دالة مُصرَّح عنها الخاصية name تُعيد اسم الدالة المستخدم في تعبير التصريح عن الدوال: function doSomething() {} doSomething.name; // "doSomething" اسم دالة مُعرَّفة عبر الدالة البانية Function الدوال المُنشَأة عبر البنية new Function(...)‎ أو ...

وراثة الكائنات في PHP

وراثة الكائنات من المبادئ المعروفة في البرمجة كائنية التوجه وتستخدمه PHP في نموذج الكائنات الخاصّ بها. يؤثّر هذا المبدأ على العلاقة التي تربط بين الأصناف والكائنات. فعلى سبيل المثال، عند توسيع صنف معين، يرث الصنف الفرعي جميع التوابع من نوع public و protected من الصنف الأب، وإن لم يتجاوز (override،أي يعيد تعريف) الصنف الابن هذه التوابع فإنّها ستحافظ على وظيفتها الأصلية. يساعد مبدأ وراثة الكائنات في تعريف الوظائف التي تؤديها التوابع وجعلها أكثر تجريدًا، ويتيح أداء المزيد من الوظائف في ...

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

(PHP 4, PHP 5, PHP 7) تُعيد الدالة  get_class()‎‎‎‎‎‎‎‎ اسم الصنف لكائن object. الوصف string get_class ([ object $object ] ) تحصل الدالة get_class()‎‎‎‎‎‎‎‎ على اسم الصنف للكائن المُعطى object. المعاملات object اسم الكائن المُختبر. من الممكن أن يُحذف هذا المعامل عندما يتم استخدام الدالة get_class()‎  داخل صنف ما. ملاحظة: لم يعُد التمرير الصريح للقيمة NULL كقيمة للمعامل object مسموحًا بدءًا من الإصدار PHP 7.2.0. ولكن لا يزال المعامل object اختياريًا، وسيعمل استدعاء الدالة get_class()‎  بدون المعامل object من داخل صنف ما، ...

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

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

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

(PHP 4, PHP 5, PHP 7) تحصل الدالة get_object_vars()‎‎‎ على خصائص (properties) الكائن المُعطى. الوصف array get_object_vars ( object $object ) تحصل الدالة get_object_vars()‎‎‎ على الخصائص غير الساكنة التي يمكن الوصول إليها للكائن المُعطى وفقًا للنطاق. المعاملات object الكائن الذي نريد الحصول على خصائصه. القيم المعادة تُعيد الدالة get_object_vars()‎‎‎ مصفوفة ترابطية لخصائص كائن مُعرّفة غير ساكنة قابلة للوصول لكائن مُحدد object في نطاق. إذا لم تُسند قيمة إلى خاصيةٍ ما، فستُعيد الدالة get_object_vars()‎ القيمة NULL. سجل التغييرات الإصدار الوصف 5.3.0 ...

الكائنات والمراجع في PHP

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

الكائنات والمراجع في PHP

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

‎سَلسَلة الكائن في PHP

سلسلة الكائنات - الكائنات في الجلسات تعيد الدالة serialize()‎‎ سلسلة نصية تتضمّن تمثيلًا لتدفق البايتات لأي قيمة يمكن تخزينها في PHP، ويمكن للدالة unseriazlie()‎ استخدام هذه السلسلة النصية لإعادة إنشاء القيمة الأصلية للمتغيّر. يؤدي تطبيق الدالة serialize()‎ على كائن ما لحفظ جميع المتغيرات الخاصة بذلك الكائن، أما التوابع فلا تحفظ وإنّما يحفظ اسم الصنف فقط. يجب تعريف الصنف الخاص بالكائن حتى يكون بالإمكان تطبيق unserialize()‎ على الكائن، بمعنى أنّه لو كان لديك كائن للصنف A وأجريت عليه عملية السلسلة، فإنّك ...

وراثة الكائنات في PHP

وراثة الكائنات من المبادئ المعروفة في البرمجة كائنية التوجه وتستخدمه PHP في نموذج الكائنات الخاصّ بها. يؤثّر هذا المبدأ على العلاقة التي تربط بين الأصناف والكائنات. فعلى سبيل المثال، عند توسيع صنف معين، يرث الصنف الفرعي جميع التوابع من نوع public و protected من الصنف الأب، وإن لم يتجاوز (override،أي يعيد تعريف) الصنف الابن هذه التوابع فإنّها ستحافظ على وظيفتها الأصلية. يساعد مبدأ وراثة الكائنات في تعريف الوظائف التي تؤديها التوابع وجعلها أكثر تجريدًا، ويتيح أداء المزيد من الوظائف في ...

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

(PHP 5 >= 5.3.0, PHP 7) تُعيد الدالّة get_called_class()‎ اسم صنف الروابط الساكنة المتأخرة (Late Static Binding). الوصف string get_called_class ( void ) تُعيد الدالة get_called_class()‎ اسم الصنف الذي استُدعيت فيه الدالة الساكنة التابعة للصنف. القيم المعادة تُعيد الدالّة get_called_class()‎ اسم الصنف، وتُعيد FALSE إذا استدعيت من خارج نطاق الصنف. أمثلة المثال 1: مثال عن استخدام الدالّة get_called_class()‎ <?php class foo { static public function test() { var_dump(get_called_class()); } } class ...

ثوابت الأصناف في PHP

يمكن تعريف قيم ثابتة لا يمكن تعديلها ولكل صنفٍ على حدة. تختلف الثوابت عن المتغيرات الاعتيادية في عدم استخدام العلامة $ للتصريح عنها أو استخدامها. تمتلك ثوابت الأصناف قابلية رؤية من نوع public. يجب أن تكون القيمة تعبيرًا ثابتًا وليس (على سبيل المثال) متغيرًا أو خاصّية أو استدعاء دالة. يمكن للواجهات interfaces أن تمتلك ثوابت أيضًا. راجع التوثيق الخاص بالواجهات لمشاهدة الأمثلة. منذ الإصدار 5.3.0، أصبح بالإمكان استخدام المتغيرات للإشارة إلى الصنف، ولا يمكن أن يحمل المتغير قيمة تمثّل إحدى ...

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

(PHP 4 >= 4.2.0, PHP 5, PHP 7) تتحقق الدالة is_a()‎‎‎‎‎‎ فيما إذا كان الكائن من صنفٍ معيّن أو كان ذاك الصنف واحدًا من الأصناف الآباء له. الوصف bool is_a(object $object string $class_name [,bool $allow_string = FALSE ]) تتحقق الدالة is_a()‎‎‎‎‎‎  فيما إذا كانت الكائن المُعطى  object هو من الصنف class_name أو يملك هذا الصنف كواحد من الأصناف الآباء له. المعاملات object الكائن المُختبر. class_name اسم الصنف. allow_string إذا ضُبِطَت قيمة هذا المعامل إلى القيمة FALSE، فلا يُسمح عندها باستخدام اسم ...

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

(PHP 4, PHP 5, PHP 7) تتحقق الدالة method_exists()‎‎‎‎‎‎ فيما إذا كانت الدالة التابعة للصنف method_name موجودة. الوصف bool method_exists ( mixed $object , string $method_name ) تتحقق الدالة method_exists()‎‎‎‎‎‎ فيما إذا كانت الدالة التابعة للصنف method_name موجودة في الكائن المُعطى object. المعاملات object نسخة الكائن أو اسم الصنف. method_name اسم الدالة التابعة للصنف. القيم المعادة تُعيد الدالة method_exists()‎‎‎‎‎‎ القيمة TRUE إذا كانت الدالة التابعة للصنف المُعطاة بالمعامل  method_name  مُعرّفة في الكائن  object المُعطى، وإلا فإنها ستُعيد القيمة FALSE. ...

الأصناف المجهولة في PHP

أُضيف دعم الأصناف المجهولة إلى الإصدار السابع من PHP، وهي مفيدة عند الحاجة إلى إنشاء نسخة واحدة بسيطة من الصنف. <?php // قبل الإصدار السابع class Logger { public function log($msg) { echo $msg; } } $util->setLogger(new Logger()); // الإصدار السابع وما بعده $util->setLogger(new class { public function log($msg) { echo $msg; } }); ?> يمكن للأصناف ...

مقارنة الكائنات في PHP

يمكن إجراء مقارنة بسيطة بين متغيرات الكائنات باستخدام عامل المقارنة (==)، وتكون نسختا الكائن متساويتين إن كانتا تملكان نفس المعاملات ونفس القيم (تقارن القيم باستخدام ==) وكانتا نسختين لنفس الصنف. عند استخدام عامل التطابق (===) تكون متغيرات الكائنات متطابقة عندما تشير فقط وفقط إذا إلى النسخة نفسها من الصنف نفسه. يوضّح المثال التالي هذه القواعد. المثال 1: مثال على مقارنة الكائنات في الإصدار الخامس من PHP <?php function bool2str($bool) { if ($bool === false) { ...

‎سَلسَلة الكائن في PHP

سلسلة الكائنات - الكائنات في الجلسات تعيد الدالة serialize()‎‎ سلسلة نصية تتضمّن تمثيلًا لتدفق البايتات لأي قيمة يمكن تخزينها في PHP، ويمكن للدالة unseriazlie()‎ استخدام هذه السلسلة النصية لإعادة إنشاء القيمة الأصلية للمتغيّر. يؤدي تطبيق الدالة serialize()‎ على كائن ما لحفظ جميع المتغيرات الخاصة بذلك الكائن، أما التوابع فلا تحفظ وإنّما يحفظ اسم الصنف فقط. يجب تعريف الصنف الخاص بالكائن حتى يكون بالإمكان تطبيق unserialize()‎ على الكائن، بمعنى أنّه لو كان لديك كائن للصنف A وأجريت عليه عملية السلسلة، فإنّك ...

PHP Object Iteration

يقدّم الإصدار الخامس من اللغة طريقة لتعريف العناصر ليكون بالإمكان المرور على قائمة من العناصر باستخدام العبارة foreach على سبيل المثال، وتستخدم جميع الخصائص المرئية بصورة افتراضية لعملية المرور على العناصر. المثال 1: مثال بسيط على المرور على عناصر الكائن <?php class MyClass { public $var1 = 'value 1'; public $var2 = 'value 2'; public $var3 = 'value 3'; protected $protected = 'protected var'; private ...

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

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

استنساخ الكائنات في PHP

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

التحميل الزائد في PHP

تقديم ميزة التحميل الزائد في PHP القدرة على إنشاء الخصائص والتوابع بصورة ديناميكية، وتعالج هذه العناصر الديناميكية بواسطة التوابع السحرية (magic methods) التي يمكن استخدامها في الصنف لأداء العديد من الوظائف. تنفّذ توابع التحميل الزائد عند التفاعل مع الخصائص أو التوابع غير المصرّح عنها أو غير المرئية ضمن النطاق الحالي. سيستخدم هذا القسم مصطلحي "خاصية يتعذر الوصول إليها" و"تابع يتعذر الوصول إليه" للإشارة إلى حالة التصريح وقابلية الرؤية هذه. يجب تعريف جميع توابع التحميل الزائد كتوابع من نوع public. ملاحظة: ...

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

(PHP 4, PHP 5, PHP 7) تحصل الدالة get_parent_class()‎‎‎‎ على اسم الصنف الأب لكائن أو لصنف. الوصف string get_parent_class ( mixed $object ) تحصل الدالة get_parent_class()‎‎‎‎ على اسم الصنف الأب لكائن أو لصنف وتعيده. المعاملات object اسم الكائن المُختبر أو اسم الصنف. هذا المعامل اختياري إذا استدعيناه من داخل دالة تابعة لصنف. القيم المعادة تُعيد الدالة get_parent_class()‎‎‎‎ اسم الصنف الأب للصنف الذي يكون object نسخة منه أو الاسم. إذا استُدعيت الدالة get_parent_class()‎ بدون معامل خارج كائن، فتُعيد هذه الدالة القيمة ...

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

(PHP 4 >= 4.2.0, PHP 5, PHP 7) تتحقق الدالة is_subclass_of()‎‎‎‎‎‎‎ فيما إذا كان يملك الكائن صنفًا ما كواحد من الأصناف الآباء له أو ينفذه. الوصف bool is_subclass_of ( mixed $object , string $class_name [, bool $allow_string = TRUE ] ) تتحقق الدالة is_subclass_of()‎‎‎‎‎‎‎  فيما إذا كان الصنف class_name هو واحد من الأصناف الآباء للكائن object. المعاملات object اسم الصنف أو نسخة الكائن. لن يولَّد خطأ إذا لم يكن الصنف موجودًا. class_name اسم الصنف. allow_string إذا ضُبِطَت قيمة هذا المعامل إلى ...

استنساخ الكائنات في PHP

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

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

(PHP 5 >= 5.4.0, PHP 7) تتحقق الدالة trait_exists()‎‎‎‎‎‎‎‎ فيما إذا كانت السمة (trait) موجودةً. الوصف bool trait_exists ( string $traitname [, bool $autoload ] ) المعاملات traitname اسم السمة المُراد التحقق منها. autoload فيما إذا كان يجب أن تُحمَّل السمة تلقائيًا إن لم تكن مُعرَّفةً من قبل. القيم المعادة ستُعيد الدالة trait_exists()‎‎‎‎‎‎‎‎ القيمة TRUE  إذا كانت السمة موجودة، وستُعيد القيمة FALSE  إذا كانت السمة غير موجودة، وستُعيد NULL في حال حدوث خطأ. انظر أيضًا الدالة class_exists()‎: التحقق من أنّ الصنف ...

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

(PHP 5 >= 5.1.0, PHP 7) تتحقق الدالة  property_exists()‎‎‎‎‎‎‎ فيما إذا كان لدى الكائن أو الصنف الخاصيّة property. الوصف bool property_exists ( mixed $class , string $property ) تتحقق الدالة property_exists()‎‎‎‎‎‎‎ فيما إذا كانت الخاصية property  المُعطاة موجودةً في الصنف المُحدّد. ملاحظة: على عكس الدالة isset()‎، ستُعيد الدالة property_exists()‎ القيمة TRUE حتى لو كان لدى الخاصية القيمة NULL. المعاملات class اسم الصنف أو كائن من الصنف الذي يُراد اختباره. property اسم الخاصية المراد التأكد من وجودها. القيم المعادة تُعيد الدالة ...

واجهات الكائنات في PHP

تتيح واجهات الكائنات إنشاء شيفرة تحدّد التوابع التي يجب أن يتضمّنها الصنف دون الحاجة إلى تعريف آلية التحكّم في هذه التوابع. تعرّف الواجهات بنفس طريقة تعريف الأصناف، ولكن باستخدام الكلمة المفتاحية interface بدل الكلمة المفتاحية class ودون تعريف محتوى أيّ تابعٍ في الواجهة. يجب أن تكون جميع التوابع المصرّح عنها في الواجهة من النوع public وهذه هي طبيعة الواجهة. يمكن التصريح عن تابع بانٍ في الواجهة، وهو أمر مفيد في بعض الحالات، كاستخدام التابع من قبل المعامل factories. العامل implements ...

التوابع السحرية في PHP

التوابع السحرية في أصناف PHP هي ‎__construct()‎ و ‎__destruct()‎ و ‎__call()‎ و ‎__callStatic()‎ و ‎__get()‎ و ‎__set()‎ و ‎__isset()‎ و ‎__unset()‎‎ و ‎__sleep()‎ و ‎__wakeup()‎ و ‎__toString()‎ و ‎__invoke()‎ و ‎_‎_set_state()‎ و ‎__clone()‎ و ‎__debugInfo()‎. ولا يمكنك استخدام دوالّ تحمل هذه الأسماء في أي صنف ما لم تكن ترغب في الاستفادة من الوظيفة السحرية التي تتمتّع بها. تحذير: تحجز PHP جميع الدوال التي تبدأ بالرمز __ كدوال سحرية؛ لذا ينصح بعدم تسمية دوالك الخاصة بأسماء تبدأ بهذا الرمز ما لم ...

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

(PHP 4, PHP 5, PHP 7) تُعيد الدالّة get_class_methods()‎ أسماء الدوال التابعة للصنف. الوصف array get_class_methods ( mixed $class_name ) تُعيد الدالة get_class_methods()‎ أسماء الدوال التابعة للصنف الممرّر لها. المعاملات class_name اسم الصنف أو نسخة الكائن (الذي نريد معرفة أسماء الدوال التابعة له). القيم المعادة تُعيد الدالّة get_class_methods()‎ مصفوفة بأسماء الدوال المعرّفة التابعة للصنف المحدّد من خلال المعامل class_name، ويعيد القيمة NULL عند وجود خطأ. أمثلة المثال 1: مثال عن استخدام الدالّة get_class_methods()‎ <?php class myclass { // ...

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

(PHP 5 >= 5.0.2, PHP 7) تتحقق الدالة interface_exists()‎‎‎‎‎ فيما إذا كانت الواجهة (interface) مُعرّفة. الوصف bool interface_exists (string $interface_name [, bool $autoload = TRUE ]) تتحقق الدالة interface_exists()‎‎‎‎‎ فيما إذا كانت الواجهة المُعطاة مُعرّفة. المعاملات interface_name اسم الواجهة. autoload يُحدِّد هذا المعامل فيما إذا كانت ستُستدعى الدالة ‎__autoload‎‎ أم لا. القيم المعادة تُعيد الدالة interface_exists()‎‎‎‎‎ القيمة TRUE إذا كانت الواجهة المُعطاة بالمعامل interface_nam مُعرّفة، وإلا فإنها ستُعيد القيمة FALSE. أمثلة المثال 1: مثال عن استخدام الدالة interface_exists()‎‎‎ <?php // التحقق ...

واجهات الكائنات في PHP

تتيح واجهات الكائنات إنشاء شيفرة تحدّد التوابع التي يجب أن يتضمّنها الصنف دون الحاجة إلى تعريف آلية التحكّم في هذه التوابع. تعرّف الواجهات بنفس طريقة تعريف الأصناف، ولكن باستخدام الكلمة المفتاحية interface بدل الكلمة المفتاحية class ودون تعريف محتوى أيّ تابعٍ في الواجهة. يجب أن تكون جميع التوابع المصرّح عنها في الواجهة من النوع public وهذه هي طبيعة الواجهة. يمكن التصريح عن تابع بانٍ في الواجهة، وهو أمر مفيد في بعض الحالات، كاستخدام التابع من قبل المعامل factories. العامل implements ...

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

(PHP 5 >= 5.3.0, PHP 7) تُنشئ الدالّة class_alias()‎‎ اسمًا مستعارًا للصنف. الوصف bool class_alias ( string $original , string $alias [, bool $autoload= TRUE ] ) تنشئ الدالة class_alias()‎ اسما مستعار يسمّى alias اعتمادًا على الصنف original المعرّف من قبل المستخدم. الصنف المستعار هو نفس الصنف الأصلي تمامًا. المعاملات original الصنف الأصلي الذي نريد إنشاء اسم مستعار له. alias الاسم المستعار للصنف. autoload استخدام التحميل التلقائي إذا لم يُعثر على الصنف الأصلي. القيم المعادة تُعيد الدالّة class_alias()‎ القيمة TRUE ...

التوابع السحرية في PHP

التوابع السحرية في أصناف PHP هي ‎__construct()‎ و ‎__destruct()‎ و ‎__call()‎ و ‎__callStatic()‎ و ‎__get()‎ و ‎__set()‎ و ‎__isset()‎ و ‎__unset()‎‎ و ‎__sleep()‎ و ‎__wakeup()‎ و ‎__toString()‎ و ‎__invoke()‎ و ‎_‎_set_state()‎ و ‎__clone()‎ و ‎__debugInfo()‎. ولا يمكنك استخدام دوالّ تحمل هذه الأسماء في أي صنف ما لم تكن ترغب في الاستفادة من الوظيفة السحرية التي تتمتّع بها. تحذير: تحجز PHP جميع الدوال التي تبدأ بالرمز __ كدوال سحرية؛ لذا ينصح بعدم تسمية دوالك الخاصة بأسماء تبدأ بهذا الرمز ما لم ...

الأصناف المجهولة في PHP

أُضيف دعم الأصناف المجهولة إلى الإصدار السابع من PHP، وهي مفيدة عند الحاجة إلى إنشاء نسخة واحدة بسيطة من الصنف. <?php // قبل الإصدار السابع class Logger { public function log($msg) { echo $msg; } } $util->setLogger(new Logger()); // الإصدار السابع وما بعده $util->setLogger(new class { public function log($msg) { echo $msg; } }); ?> يمكن للأصناف ...

مقارنة الكائنات في PHP

يمكن إجراء مقارنة بسيطة بين متغيرات الكائنات باستخدام عامل المقارنة (==)، وتكون نسختا الكائن متساويتين إن كانتا تملكان نفس المعاملات ونفس القيم (تقارن القيم باستخدام ==) وكانتا نسختين لنفس الصنف. عند استخدام عامل التطابق (===) تكون متغيرات الكائنات متطابقة عندما تشير فقط وفقط إذا إلى النسخة نفسها من الصنف نفسه. يوضّح المثال التالي هذه القواعد. المثال 1: مثال على مقارنة الكائنات في الإصدار الخامس من PHP <?php function bool2str($bool) { if ($bool === false) { ...

التحميل الزائد في PHP

تقديم ميزة التحميل الزائد في PHP القدرة على إنشاء الخصائص والتوابع بصورة ديناميكية، وتعالج هذه العناصر الديناميكية بواسطة التوابع السحرية (magic methods) التي يمكن استخدامها في الصنف لأداء العديد من الوظائف. تنفّذ توابع التحميل الزائد عند التفاعل مع الخصائص أو التوابع غير المصرّح عنها أو غير المرئية ضمن النطاق الحالي. سيستخدم هذا القسم مصطلحي "خاصية يتعذر الوصول إليها" و"تابع يتعذر الوصول إليه" للإشارة إلى حالة التصريح وقابلية الرؤية هذه. يجب تعريف جميع توابع التحميل الزائد كتوابع من نوع public. ملاحظة: ...

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

(PHP 4, PHP 5, PHP 7) تُعيد الدالة get_declared_classes()‎ مصفوفةً فيها أسماء الأصناف المُصرّح عنها. الوصف array get_declared_classes ( void ) تحصل الدالة get_declared_classes()‎  على الأصناف المُصرّح عنها. المعاملات لا تملك الدالة get_declared_classes()‎ أيّة معاملات. القيم المعادة تُعيد الدالة get_declared_classes()‎ مصفوفة بأسماء الأصناف المُصرّح عنها في السكربت الحالي. ملاحظة: يمكن أن توجد أصناف إضافية في PHP  اعتمادًا على الإضافات المجمّعة (compiled) والمحملة إليها. وهذا يعني أنك لن تكون قادرًا على استخدام أسماء هذه الأصناف في تعريف أصنافك الخاصّة. ستجد قائمة بالأصناف ...

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

(PHP 5 >= 5.4.0, PHP 7) تُعيد الدالة get_declared_traits()‎‎ مصفوفة بكل السمات (traits) المُصرّح عنها. الوصف array get_declared_traits ( void ) المعاملات لا تملك الدالة get_declared_traits()‎ أيّة معاملات. القيم المعادة تُعيد الدالة get_declared_traits()‎‎ مصفوفة بأسماء كل السمات المُصرّح عنها في القيم. وتُعيد الدالة القيمة NULL في حال حدوث خطأ. انظر أيضًا الدالة class_uses()‎‎: إعادة السمات المُستخدمة من قبل صنف مُعطى. الدالة trait_exists()‎‎: التحقق من وجود السمة. مصادر صفحة الدالة get_declared_traits‎ في توثيق PHP الرسمي.

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

(PHP 4, PHP 5, PHP 7) تتحقق الدالّة class_exists()‎‎‎ من أنّ الصنف الممرّر مُعرّف. الوصف bool class_exists ( string $class_name [, bool $autoload = TRUE ] ) تتحقق الدالة class_exists()‎ من أن الصنف الممرّر إليها مُعرّف أم لا. المعاملات class_name اسم الصف المراد التحقق منه. يتم مطابقة الاسم بشكل غير حساس لحالة الأحرف. autoload ضبط إذا كانت ستُستدعى دالة ‎__autoload‎‎ افتراضيًا أم لا. القيم المعادة تُعيد الدالّة class_exists()‎ القيمة TRUE إذا كان الصنف class_name معرّفًا، وإلاّ فستُعيد FALSE. سجل التغييرات ...

PHP Object Iteration

يقدّم الإصدار الخامس من اللغة طريقة لتعريف العناصر ليكون بالإمكان المرور على قائمة من العناصر باستخدام العبارة foreach على سبيل المثال، وتستخدم جميع الخصائص المرئية بصورة افتراضية لعملية المرور على العناصر. المثال 1: مثال بسيط على المرور على عناصر الكائن <?php class MyClass { public $var1 = 'value 1'; public $var2 = 'value 2'; public $var3 = 'value 3'; protected $protected = 'protected var'; private ...

ثوابت الأصناف في PHP

يمكن تعريف قيم ثابتة لا يمكن تعديلها ولكل صنفٍ على حدة. تختلف الثوابت عن المتغيرات الاعتيادية في عدم استخدام العلامة $ للتصريح عنها أو استخدامها. تمتلك ثوابت الأصناف قابلية رؤية من نوع public. يجب أن تكون القيمة تعبيرًا ثابتًا وليس (على سبيل المثال) متغيرًا أو خاصّية أو استدعاء دالة. يمكن للواجهات interfaces أن تمتلك ثوابت أيضًا. راجع التوثيق الخاص بالواجهات لمشاهدة الأمثلة. منذ الإصدار 5.3.0، أصبح بالإمكان استخدام المتغيرات للإشارة إلى الصنف، ولا يمكن أن يحمل المتغير قيمة تمثّل إحدى ...

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

(PHP 4, PHP 5, PHP 7) تُعيد الدالّة get_class_vars()‎‎‎‎ الخصائص الافتراضية للصنف. الوصف array get_class_vars ( string $class_name ) تُعيد الدالّة get_class_vars()‎‎‎‎ الخصائص الافتراضية للصنف المُمرّر إليها. المعاملات class_name اسم الصف المراد الحصول على الخصائص الافتراضية له. القيم المعادة تُعيد الدالّة get_class_vars()‎‎ مصفوفة ترابطية من الخصائص المصرّح عنها المرئية في النطاق الحالي، مع قيمها الافتراضية. تكون عناصر المصفوفة الناتجة على الشكل التالي: اسم الخاصية => القيمة (varname => value). وتُعيد FALSE في حال وجود خطأ. سجل التغييرات الإصدار الوصف 5.0.3 ستُعيد ...

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

(PHP 5, PHP 7) تُعيد الدالة get_declared_interfaces()‎‎ مصفوفة  بكل الواجهات (interfaces) المُصرّح عنها. الوصف array get_declared_interfaces ( void ) تحصل الدالة get_declared_interfaces()‎‎ على الواجهات المُصرّح عنها. المعاملات لا تملك الدالة get_declared_interfaces()‎ أيّة معاملات. القيم المعادة تُعيد الدالة get_declared_interfaces()‎‎ مصفوفة بأسماء الواجهات المُصرّح عنها في السكربت الحالي. أمثلة المثال 1: مثال عن استخدام الدالّة get_declared_interfaces()‎ <?php print_r(get_declared_interfaces()); ?> سينتج المثال السابق الناتج الآتي: Array ( [0] => Traversable [1] => IteratorAggregate [2] => Iterator ...

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