الفرق بين المراجعتين ل"PHP/exit"

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
(تعديلات طفيفة على التنسيق)
 
(مراجعتان متوسطتان بواسطة نفس المستخدم غير معروضتين)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الدالة <code>exit()</code>‎ في PHP}}</noinclude>
+
<noinclude>{{DISPLAYTITLE:البنية <code>exit()</code>‎ في PHP}}</noinclude>
 
(PHP 4, PHP 5, PHP 7)
 
(PHP 4, PHP 5, PHP 7)
  
تُخرج البنية exit()‎ رسالةً وتنهي البرنامج الحالي.
+
تُخرج البنية <code>exit()</code>‎ رسالةً وتنهي البرنامج الحالي.
  
 
== الوصف ==
 
== الوصف ==
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
 
void exit ([ string $status ] )
 
void exit ([ string $status ] )
 
 
void exit ( int $status )
 
void exit ( int $status )
  
</syntaxhighlight>توقف البنية exit()‎ تنفيذ البرنامج. أما دوال إيقاف التشغيل والدالة الهادمة فستُنفَّذ دومًا حتى في حالة استدعاء البنية exit()‎.
+
</syntaxhighlight>توقف البنية <code>exit()‎</code> تنفيذ البرنامج. أما دوال إيقاف التشغيل والدالة الهادمة فستُنفَّذ دومًا حتى في حالة استدعاء البنية <code>exit()‎</code>.
  
البنية exit()‎ بنية من بنى اللغة (language construct)، ويمكن استدعاؤها بدون أقواس إذا لم يُمَرر إليها المعامل status.
+
البنية <code>exit()</code>‎ بنية من بنى اللغة (language construct)، ويمكن استدعاؤها بدون أقواس إذا لم يُمَرر إليها المعامل <code>status</code>.
  
 
== المعاملات ==
 
== المعاملات ==
  
 
=== status ===
 
=== status ===
إذا كانت قيمة المعامل status سلسلةً نصيةً، فستطبع البنية اللغوية exit()‎ المعامل status قبل إنهاء تنفيذ السكربت.
+
إذا كانت قيمة المعامل <code>status</code> سلسلةً نصيةً، فستطبع البنية اللغوية <code>exit()‎</code> المعامل <code>status</code> قبل إنهاء تنفيذ السكربت.
  
إذا كان المعامل status عددًا صحيحًا، فستستخدم هذه القيمة كحالة خروج ولن تُطبع. يجب أن تكون حالات الخروج في المدى من 0 إلى 254، وحالة الخروج 255 محجوزة بواسطة PHP ولا يجوز استخدامها، وتستخدم الحالة 0 لإنهاء البرنامج بنجاح.
+
إذا كان المعامل <code>status</code> عددًا صحيحًا، فستستخدم هذه القيمة كحالة خروج ولن تُطبع. يجب أن تكون حالات الخروج في المدى من 0 إلى 254، وحالة الخروج 255 محجوزة بواسطة PHP ولا يجوز استخدامها، وتستخدم الحالة 0 لإنهاء البرنامج بنجاح.
  
 
== القيم المعادة ==
 
== القيم المعادة ==
لا تعيد البنية exit()‎ قيمًا.
+
لا تعيد البنية <code>exit()</code>‎ قيمًا.
  
 
== أمثلة ==
 
== أمثلة ==
المثال 1: مثال على البنية exit()‎<syntaxhighlight lang="php">
+
المثال 1: مثال على البنية <code>exit()</code>‎<syntaxhighlight lang="php">
 
<?php
 
<?php
 
 
$filename = '/path/to/data-file';
 
$filename = '/path/to/data-file';
 
 
$file = fopen($filename, 'r')
 
$file = fopen($filename, 'r')
 
+
  or exit("unable to open file ($filename)");
   or exit("unable to open file ($filename)");
 
 
 
 
?>
 
?>
</syntaxhighlight>المثال 2: مثال على استخدام المعامل status<syntaxhighlight lang="php">
+
</syntaxhighlight>المثال 2: مثال على استخدام المعامل <code>status</code><syntaxhighlight lang="php">
 
<?php
 
<?php
 
 
// تغلق البرنامج بشكل طبيعي
 
// تغلق البرنامج بشكل طبيعي
 
 
exit;
 
exit;
 
 
exit();
 
exit();
 
 
exit(0);
 
exit(0);
 
 
// تغلق البرنامج مع حالة خروج تشير إلى خطأ
 
// تغلق البرنامج مع حالة خروج تشير إلى خطأ
 
 
exit(1);
 
exit(1);
 
 
exit(0376); // في النظام الثماني
 
exit(0376); // في النظام الثماني
 
 
?>
 
?>
 
</syntaxhighlight>المثال 3: مثال على تشغيل دوال إيقاف التشغيل والدالة الهادمة دون عائق<syntaxhighlight lang="php">
 
</syntaxhighlight>المثال 3: مثال على تشغيل دوال إيقاف التشغيل والدالة الهادمة دون عائق<syntaxhighlight lang="php">
 
<?php
 
<?php
 
 
class Foo
 
class Foo
 
 
{
 
{
 
+
  public function __destruct()
   public function __destruct()
+
  {
 
+
    echo 'Destruct: ' . __METHOD__ . '()' . PHP_EOL;
   {
+
  }
 
 
       echo 'Destruct: ' . __METHOD__ . '()' . PHP_EOL;
 
 
 
   }
 
 
 
 
}
 
}
 
 
function shutdown()
 
function shutdown()
 
 
{
 
{
 
+
 echo 'Shutdown: ' . __FUNCTION__ . '()' . PHP_EOL;
   echo 'Shutdown: ' . __FUNCTION__ . '()' . PHP_EOL;
 
 
 
 
}
 
}
 
 
$foo = new Foo();
 
$foo = new Foo();
 
 
register_shutdown_function('shutdown');
 
register_shutdown_function('shutdown');
 
 
exit();
 
exit();
 
 
echo 'This will not be output.';
 
echo 'This will not be output.';
 
 
?>
 
?>
</syntaxhighlight>ناتج المثال السابق:<syntaxhighlight lang="php">
+
</syntaxhighlight>ناتج المثال السابق:<syntaxhighlight lang="text">
 
Shutdown: shutdown()
 
Shutdown: shutdown()
 
 
Destruct: Foo::__destruct()
 
Destruct: Foo::__destruct()
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
== ملاحظات ==
 
== ملاحظات ==
ملاحظة: نظرًا لأن exit()‎ بنية من بنى اللغة وليست دالةً، فلا يمكن استدعائها باستخدام [[PHP/variable functions|الدوال المتغيرة]].
+
ملاحظة: نظرًا لأن <code>exit()‎</code> بنية من بنى اللغة وليست دالةً، فلا يمكن استدعائها باستخدام [[PHP/variable functions|الدوال المتغيرة]].
  
ملاحظة: تكافئ البنيةُ exit()‎ البنيةَ die()‎.
+
ملاحظة: تكافئ البنيةُ <code>exit()</code>‎ البنيةَ <code>[[PHP/die|die()]]</code>‎.
  
 
== انظر أيضًا ==
 
== انظر أيضًا ==
* الدالة register_shutdown_function()‎: تسجيل دالة للتنفيذ عند إيقاف التشغيل.
+
* الدالة <code>[[PHP/register shutdown function|register_shutdown_function()‎]]</code>: تسجيل دالة للتنفيذ عند إيقاف التشغيل.
  
 
== مصادر ==
 
== مصادر ==

المراجعة الحالية بتاريخ 12:53، 29 مايو 2018

(PHP 4, PHP 5, PHP 7)

تُخرج البنية exit()‎ رسالةً وتنهي البرنامج الحالي.

الوصف

void exit ([ string $status ] )
void exit ( int $status )

توقف البنية exit()‎ تنفيذ البرنامج. أما دوال إيقاف التشغيل والدالة الهادمة فستُنفَّذ دومًا حتى في حالة استدعاء البنية exit()‎.

البنية exit()‎ بنية من بنى اللغة (language construct)، ويمكن استدعاؤها بدون أقواس إذا لم يُمَرر إليها المعامل status.

المعاملات

status

إذا كانت قيمة المعامل status سلسلةً نصيةً، فستطبع البنية اللغوية exit()‎ المعامل status قبل إنهاء تنفيذ السكربت.

إذا كان المعامل status عددًا صحيحًا، فستستخدم هذه القيمة كحالة خروج ولن تُطبع. يجب أن تكون حالات الخروج في المدى من 0 إلى 254، وحالة الخروج 255 محجوزة بواسطة PHP ولا يجوز استخدامها، وتستخدم الحالة 0 لإنهاء البرنامج بنجاح.

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

لا تعيد البنية exit()‎ قيمًا.

أمثلة

المثال 1: مثال على البنية exit()

<?php
$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
  or exit("unable to open file ($filename)");
?>

المثال 2: مثال على استخدام المعامل status

<?php
// تغلق البرنامج بشكل طبيعي
exit;
exit();
exit(0);
// تغلق البرنامج مع حالة خروج تشير إلى خطأ
exit(1);
exit(0376); // في النظام الثماني
?>

المثال 3: مثال على تشغيل دوال إيقاف التشغيل والدالة الهادمة دون عائق

<?php
class Foo
{
  public function __destruct()
  {
    echo 'Destruct: ' . __METHOD__ . '()' . PHP_EOL;
  }
}
function shutdown()
{
 echo 'Shutdown: ' . __FUNCTION__ . '()' . PHP_EOL;
}
$foo = new Foo();
register_shutdown_function('shutdown');
exit();
echo 'This will not be output.';
?>

ناتج المثال السابق:

Shutdown: shutdown()
Destruct: Foo::__destruct()

ملاحظات

ملاحظة: نظرًا لأن exit()‎ بنية من بنى اللغة وليست دالةً، فلا يمكن استدعائها باستخدام الدوال المتغيرة.

ملاحظة: تكافئ البنيةُ exit()‎ البنيةَ die()‎.

انظر أيضًا

مصادر