الفرق بين المراجعتين لصفحة: «PHP/isset»

من موسوعة حسوب
< PHP
إضافة الأقسام الناقصة وإجراء تصويبات وإضافة روابط
ط نقل عبد اللطيف ايمش صفحة PHP/Function/isset إلى PHP/isset: إعادة هيكلة التوثيق
 
(12 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الدالة isset}}</noinclude>
<noinclude>{{DISPLAYTITLE:الدالة isset()‎ في PHP}}</noinclude>
(PHP 4, PHP 5, PHP 7)
(PHP 4, PHP 5, PHP 7)


سطر 6: سطر 6:
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
bool isset ( mixed $var [, mixed $... ] )
bool isset ( mixed $var [, mixed $... ] )
</syntaxhighlight>إذا ألغي تعريف أحد المتغيرات باستخدام الدالة <code>[[PHP/Function/unset|unset()‎]]</code>، فسوف يؤدي ذلك إلى إلغاء وجوده كليًا من السكربت، ويمكن استخدام الدالة <code>isset</code> للتحقق من وجود المتغير وستُعاد قيمة <code>false</code> عند فحص المتغير الذي يحمل القيمة NULL ،ونلاحظ أيضاً أن القيمة الحرفية الفارغة ("<code>0\</code>"، التي تسمى null character) لا تكافئ القيمة الثابتة NULL في PHP.
</syntaxhighlight>إذا ألغي تعريف أحد المتغيرات باستخدام الدالة <code>[[PHP/unset|unset()‎]]</code>، فسوف يؤدي ذلك إلى إلغاء وجوده كليًا من السكربت، ويمكن استخدام الدالة <code>isset</code> للتحقق من وجود المتغير وستُعاد قيمة <code>false</code> عند فحص المتغير الذي يحمل القيمة NULL ،ونلاحظ أيضاً أن القيمة الحرفية الفارغة ("<code>0\</code>"، التي تسمى null character) لا تكافئ القيمة الثابتة NULL في PHP.


ويمكن للدالة <code>isset</code> أن تتعامل مع أكثر من وسيط في نفس الوقت وستُعاد قيمة <code>true</code> فقط في حال كانت جميع الوسائط معرفةً. لاحظ أنَّ عملية التحقق من وجود المتغيرات ستجرى من اليسار إلى اليمين، وستتوقف عند مصادفة متغير غير معرَّف.
ويمكن للدالة <code>isset</code> أن تتعامل مع أكثر من وسيط في نفس الوقت وستُعاد قيمة <code>true</code> فقط في حال كانت جميع الوسائط معرفةً. لاحظ أنَّ عملية التحقق من وجود المتغيرات ستجرى من اليسار إلى اليمين، وستتوقف عند مصادفة متغير غير معرَّف.
== [[PHP/Functions/isset_var|الوسائط]] ==
== المعاملات ==


=== <code>var</code> ===
=== <code>var</code> ===
سطر 16: سطر 16:
=== <code>...</code> ===
=== <code>...</code> ===
وسائط أخرى…
وسائط أخرى…
== [[PHP/Functions/isset_returenVal|القيم المعادة]] ==
== القيم المعادة ==
ستُعاد قيمة <code>true</code> إذا كان الوسيط (var) موجودًا ولهُ قيمةً أخرى غير NULL، ما عدا ذلك ستُعاد القيمة <code>false</code>.
ستُعاد قيمة <code>true</code> إذا كان الوسيط (var) موجودًا ولهُ قيمةً أخرى غير NULL، ما عدا ذلك ستُعاد القيمة <code>false</code>.


سطر 111: سطر 111:


== ملاحظات ==
== ملاحظات ==
الدالة <code>isset()‎</code> تعمل مع المتغيرات فقط، وتمرير أي شيء آخر سيؤدي إلى إطلاق خطأ parse error. يمكنك التحقق من ضبط [[PHP/Constants|الثوابت]] باستخدام الدالة <code>[[PHP/Function/defined|defined()‎]]</code>.
الدالة <code>isset()‎</code> تعمل مع المتغيرات فقط، وتمرير أي شيء آخر سيؤدي إلى إطلاق خطأ parse error. يمكنك التحقق من ضبط [[PHP/constants|الثوابت]] باستخدام الدالة <code>[[PHP/defined|defined()‎]]</code>.


لما كانت الدالة <code>isset()‎</code> تعد بنيةً من بنى اللغة (language construct) وليست دالةً (function)، فلا يمكننا استخدام «<nowiki/>[[PHP/Functions/variable-functions|الدوال المتغيرة]]» (variable functions).
لما كانت الدالة <code>isset()‎</code> تعد بنيةً من بنى اللغة (language construct) وليست دالةً (function)، فلا يمكننا استخدام «<nowiki/>[[PHP/variable functions|الدوال المتغيرة]]» (variable functions).


عند استخدام <code>isset()‎</code> على خاصياتٍ تابعةٍ لكائنٍ لكننا لا نستطيع الوصول إليها، فسوف تستدعى الدالة زائدة التحميل <code>[[PHP/OOP/magic|‎__isset()]]</code>‎ إن كانت معرفةً.
عند استخدام <code>isset()‎</code> على خاصياتٍ تابعةٍ لكائنٍ لكننا لا نستطيع الوصول إليها، فسوف تستدعى الدالة زائدة التحميل <code>[[PHP/magic|‎__isset()]]</code>‎ إن كانت معرفةً.


== انظر أيضًا ==
== انظر أيضًا ==
* <code>[[PHP/Function/empty|()empty]]</code>: تحديد ما إذا كان المتغير فارغًا.
* <code>[[PHP/empty|()empty]]</code>: تحديد ما إذا كان المتغير فارغًا.
* <code>[[PHP/Function/unset|unset()‎]]</code>: إلغاء تعريف المتغير.
* <code>[[PHP/unset|unset()‎]]</code>: إلغاء تعريف المتغير.
* <code>[[PHP/Function/defined|defined()‎]]</code>: التحقق إن كان الثابت المعطى موجودًا.
* <code>[[PHP/defined|defined()‎]]</code>: التحقق إن كان الثابت المعطى موجودًا.
* <code>[[PHP/Function/array-key-exists|array_key_exists()‎]]</code>: التحقق إن كان فهرسٌ ما موجودًا في المصفوفة.
* <code>[[PHP/array_key_exists|array_key_exists()‎]]</code>: التحقق إن كان فهرسٌ ما موجودًا في المصفوفة.
* <code>[[PHP/Function/count|()count]]</code>: حساب عناصر المصفوفة.
* <code>[[PHP/count|()count]]</code>: حساب عناصر المصفوفة.
* <code>[[PHP/Function/strlen|()strlen]]</code>: إعادة طول سلسلةٍ نصيةٍ.
* <code>[[PHP/strlen|()strlen]]</code>: إعادة طول سلسلةٍ نصيةٍ.
* <code>[[PHP/Function/is-null|is_null()‎]]</code>: تحديد إذا كان المتغير NULL.
* <code>[[PHP/is_null|is_null()‎]]</code>: تحديد إذا كان المتغير NULL.


== مصادر ==
== مصادر ==
* [http://php.net/manual/en/function.isset.php صفحة الدالة isset في توثيق PHP الرسمي].
* [http://php.net/manual/en/function.isset.php صفحة الدالة isset في توثيق PHP الرسمي].
[[تصنيف:PHP]]
[[تصنيف:PHP Function]]

المراجعة الحالية بتاريخ 03:50، 4 أبريل 2018

(PHP 4, PHP 5, PHP 7)

تُحدِّد الدالة isset()‎ ما إذا كان المتغير معرفًا وليس NULL.

الوصف

bool isset ( mixed $var [, mixed $... ] )

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

ويمكن للدالة isset أن تتعامل مع أكثر من وسيط في نفس الوقت وستُعاد قيمة true فقط في حال كانت جميع الوسائط معرفةً. لاحظ أنَّ عملية التحقق من وجود المتغيرات ستجرى من اليسار إلى اليمين، وستتوقف عند مصادفة متغير غير معرَّف.

المعاملات

var

جميع الوسائط التي يمكن فحصُها.

...

وسائط أخرى…

القيم المعادة

ستُعاد قيمة true إذا كان الوسيط (var) موجودًا ولهُ قيمةً أخرى غير NULL، ما عدا ذلك ستُعاد القيمة false.

سجل التغييرات

الإصدار الوصف
5.4.0 استعمال الدالة isset()‎ مع فهارس غير نصية للسلاسل النصية سيعيد القيمة true.

أمثلة

المثال 1: مثال على الدالة isset()‎:

<?php

$var = '';

// وسوف تطبع الجملة true ستُعاد قيمة 
if (isset($var)) {
    echo "This var is set so I will print.";
}

// var_dump من أجل الحصول على مخرجات منطقية في المثال التالي سنستخدم الدالة
$a = "test";
$b = "anothertest";

var_dump(isset($a));     // TRUE
var_dump(isset($a, $b)); // TRUE

unset ($a);

var_dump(isset($a));     // FALSE
var_dump(isset($a, $b)); // FALSE

$foo = NULL;
var_dump(isset($foo));   // FALSE

?>

المثال 2: مثال يوضح كيفية عمل الدالة ()isset على عناصر المصفوفة:

<?php

$a = array ('test' => 1, 'hello' => NULL, 'pie' => array('a' => 'apple'));

var_dump(isset($a['test']));            // TRUE
var_dump(isset($a['foo']));             // FALSE
var_dump(isset($a['hello']));           // FALSE

// المفتاح hello
// يكافئ القيمة NULL
// لذا سيعد على أنه غير مضبوط
// إذا أردت التحقق من وجود مفاتيح في المصفوفة تشير إلى NULL:
var_dump(array_key_exists('hello', $a)); // TRUE

// التحقق من قيم المصفوفات المتشعبة
var_dump(isset($a['pie']['a']));        // TRUE
var_dump(isset($a['pie']['b']));        // FALSE
var_dump(isset($a['cake']['a']['b']));  // FALSE

?>

المثال 3: استخدام isset()‎ مع فهارس للسلاسل النصية تغيّر سلوك الدالة isset()‎ في الإصدار 5.4 من اللغة عند تمرير فهارس نصية لمحاولة الوصول إلى مكونات السلسلة النصية:

<?php
$expected_array_got_string = 'somestring';
var_dump(isset($expected_array_got_string['some_key']));
var_dump(isset($expected_array_got_string[0]));
var_dump(isset($expected_array_got_string['0']));
var_dump(isset($expected_array_got_string[0.5]));
var_dump(isset($expected_array_got_string['0.5']));
var_dump(isset($expected_array_got_string['0 Mostel']));
?>

ناتج المثال السابق في PHP 5.3:

bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

أما ناتجه في PHP 5.4:

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)

ملاحظات

الدالة isset()‎ تعمل مع المتغيرات فقط، وتمرير أي شيء آخر سيؤدي إلى إطلاق خطأ parse error. يمكنك التحقق من ضبط الثوابت باستخدام الدالة defined()‎.

لما كانت الدالة isset()‎ تعد بنيةً من بنى اللغة (language construct) وليست دالةً (function)، فلا يمكننا استخدام «الدوال المتغيرة» (variable functions).

عند استخدام isset()‎ على خاصياتٍ تابعةٍ لكائنٍ لكننا لا نستطيع الوصول إليها، فسوف تستدعى الدالة زائدة التحميل ‎__isset()‎ إن كانت معرفةً.

انظر أيضًا

  • ()empty: تحديد ما إذا كان المتغير فارغًا.
  • unset()‎: إلغاء تعريف المتغير.
  • defined()‎: التحقق إن كان الثابت المعطى موجودًا.
  • array_key_exists()‎: التحقق إن كان فهرسٌ ما موجودًا في المصفوفة.
  • ()count: حساب عناصر المصفوفة.
  • ()strlen: إعادة طول سلسلةٍ نصيةٍ.
  • is_null()‎: تحديد إذا كان المتغير NULL.

مصادر