الفرق بين المراجعتين لصفحة: «PHP/isset»
لا ملخص تعديل |
ط نقل عبد اللطيف ايمش صفحة PHP/Function/isset إلى PHP/isset: إعادة هيكلة التوثيق |
||
(13 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الدالة isset}}</noinclude> | <noinclude>{{DISPLAYTITLE:الدالة isset() في PHP}}</noinclude> | ||
(PHP 4, PHP 5, PHP 7) | (PHP 4, PHP 5, PHP 7) | ||
تُحدِّد الدالة <code>isset()</code> ما إذا كان المتغير معرفًا وليس NULL. | |||
== | == الوصف == | ||
< | <syntaxhighlight lang="php"> | ||
bool isset ( mixed $var [, mixed $... ] ) | |||
إذا ألغي تعريف أحد المتغيرات باستخدام الدالة unset() | </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>var</code> === | |||
جميع الوسائط التي يمكن فحصُها. | جميع الوسائط التي يمكن فحصُها. | ||
<code> | === <code>...</code> === | ||
وسائط أخرى… | |||
== القيم المعادة == | |||
ستُعاد قيمة <code>true</code> إذا كان الوسيط (var) موجودًا ولهُ قيمةً أخرى غير NULL، ما عدا ذلك ستُعاد القيمة <code>false</code>. | |||
== سجل التغييرات == | |||
== | {| class="wikitable" | ||
!الإصدار | |||
!الوصف | |||
|- | |||
|5.4.0 | |||
|استعمال الدالة <code>isset()</code> مع فهارس غير نصية للسلاسل النصية سيعيد القيمة <code>true</code>. | |||
|} | |||
== أمثلة == | |||
المثال 1: مثال على الدالة <code>isset()</code>: | |||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
<?php | <?php | ||
$var = ''; | $var = ''; | ||
// وسوف تطبع الجملة | // وسوف تطبع الجملة true ستُعاد قيمة | ||
if (isset($var)) { | if (isset($var)) { | ||
echo "This var is set so I will print."; | echo "This var is set so I will print."; | ||
} | } | ||
// | // var_dump من أجل الحصول على مخرجات منطقية في المثال التالي سنستخدم الدالة | ||
$a = "test"; | $a = "test"; | ||
$b = "anothertest"; | $b = "anothertest"; | ||
var_dump(isset($a)); | var_dump(isset($a)); // TRUE | ||
var_dump(isset($a, $b)); // TRUE | var_dump(isset($a, $b)); // TRUE | ||
سطر 48: | سطر 57: | ||
?> | ?> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
المثال 2: مثال يوضح كيفية عمل الدالة <code>()isset</code> على عناصر المصفوفة: | |||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
<?php | <?php | ||
سطر 58: | سطر 68: | ||
var_dump(isset($a['hello'])); // FALSE | var_dump(isset($a['hello'])); // FALSE | ||
// | // المفتاح hello | ||
// | // يكافئ القيمة NULL | ||
// لذا سيعد على أنه غير مضبوط | |||
// إذا أردت التحقق من وجود مفاتيح في المصفوفة تشير إلى NULL: | |||
var_dump(array_key_exists('hello', $a)); // TRUE | var_dump(array_key_exists('hello', $a)); // TRUE | ||
// | // التحقق من قيم المصفوفات المتشعبة | ||
var_dump(isset($a['pie']['a'])); // TRUE | var_dump(isset($a['pie']['a'])); // TRUE | ||
var_dump(isset($a['pie']['b'])); // FALSE | var_dump(isset($a['pie']['b'])); // FALSE | ||
سطر 68: | سطر 80: | ||
?> | ?> | ||
</syntaxhighlight>المثال 3: استخدام <code>isset()</code> مع فهارس للسلاسل النصية | |||
تغيّر سلوك الدالة <code>isset()</code> في الإصدار 5.4 من اللغة عند تمرير فهارس نصية لمحاولة الوصول إلى مكونات السلسلة النصية:<syntaxhighlight lang="php"> | |||
<?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'])); | |||
?> | |||
</syntaxhighlight>ناتج المثال السابق في PHP 5.3:<syntaxhighlight lang="text"> | |||
bool(true) | |||
bool(true) | |||
bool(true) | |||
bool(true) | |||
bool(true) | |||
bool(true) | |||
</syntaxhighlight>أما ناتجه في PHP 5.4:<syntaxhighlight lang="php"> | |||
bool(false) | |||
bool(true) | |||
bool(true) | |||
bool(true) | |||
bool(false) | |||
bool(false) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== ملاحظات == | |||
الدالة <code>isset()</code> تعمل مع المتغيرات فقط، وتمرير أي شيء آخر سيؤدي إلى إطلاق خطأ parse error. يمكنك التحقق من ضبط [[PHP/constants|الثوابت]] باستخدام الدالة <code>[[PHP/defined|defined()]]</code>. | |||
لما كانت الدالة <code>isset()</code> تعد بنيةً من بنى اللغة (language construct) وليست دالةً (function)، فلا يمكننا استخدام «<nowiki/>[[PHP/variable functions|الدوال المتغيرة]]» (variable functions). | |||
عند استخدام <code>isset()</code> على خاصياتٍ تابعةٍ لكائنٍ لكننا لا نستطيع الوصول إليها، فسوف تستدعى الدالة زائدة التحميل <code>[[PHP/magic|__isset()]]</code> إن كانت معرفةً. | |||
== انظر أيضًا == | |||
* <code>[[PHP/empty|()empty]]</code>: تحديد ما إذا كان المتغير فارغًا. | |||
* <code>[[PHP/unset|unset()]]</code>: إلغاء تعريف المتغير. | |||
* <code>[[PHP/defined|defined()]]</code>: التحقق إن كان الثابت المعطى موجودًا. | |||
* <code>[[PHP/array_key_exists|array_key_exists()]]</code>: التحقق إن كان فهرسٌ ما موجودًا في المصفوفة. | |||
* <code>[[PHP/count|()count]]</code>: حساب عناصر المصفوفة. | |||
* <code>[[PHP/strlen|()strlen]]</code>: إعادة طول سلسلةٍ نصيةٍ. | |||
* <code>[[PHP/is_null|is_null()]]</code>: تحديد إذا كان المتغير NULL. | |||
== مصادر == | |||
* [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.