خطاها در PHP
در هنگام کار با PHP ممکنه به چند نوع خطا برخورد کنيد.اين خطا ها براساس زماني که اتفاق ميافتن و اينکه آيا اين خطاها درست شدني هستن يا خير دسته بندي ميشن.اين خطاها ممکنه به صورت خودکار توسط خود php اجرا بشن يا با استفاده
طراحی وب سایت از تابع trigger_error به وسيله کاربر اجرا بشن!!
خطاها زماني رخ ميدن که کار اشتباهي رو در کدهامون کرده باشيم.کارهايي مثل : اشتباه تايپي! ، حلقه هاي بي نهايت و …
ين نوع از خطاها که به خطاهاي بحراني هم معروفه باعث ميشه که ادامه کار برنامه با مشکل مواجه شه يعني نميذاره بقيه برنامه اجرا بشه.بر اساس زماني که اين نوع خطا رخ ميده به دسته هاي زير تقسيم ميشه :
Startup fatal error : اين نوع خطا زماني رخ ميده که کدهاي PHP نميتونن اجرا بشن و مشکل از نصب يا تنظيمات PHP ميتونه باشه.
نمونه اي از خطاي Fatal Error
1
<?php
2
fnSwap();
3
echo "Swapped Successfully!"
4
?>
هنگام اجراي کد بالا به خطاي زير برميخوريم که ميگه
1
Fatal error: Call to undefined function fnSwap() in ... on line 2
تابع fnSwap رو نتونسته پيدا کنه.
? – Parse Error
نوع دوم خطاها Parse Error ها هستند.اين نوع خطاها فقط در زمان اجراي برنامه توليد ميشن و اسم ديگه اين نوع خطاها Syntax Error هستنش.يعني توي کدهامون اشتباه تايپي داشتيم يا مثلا آخر خط سمي کالن نذاشتيم و …. اين خطا هم از اجراي بقيه برنامه جلوگيري ميکنه و بايد درستش کنيد.
Start up waing
Compile time waing
Run time waing
اين نوع خطاها توسط PHP به کاربر نمايش داده ميشه اما مانع از اجراي بقيه برنامه نميشه.مثلا کد زير وقتي يک عدد رو بر صفر تقسيم ميکنيم يک Waing دريافت ميکنيم.
1
<?php
2
$count = 0;
3
$total = 200;
4
$result = $total/$count;
5
echo "RESULT: ". $result;
6
?>
اگر کد بالا رو اجرا کنيد ميبينيد که يک Waing در صفحه مثل زير نمايش داده ميشه :
1
Waing: Division by zero in ... on line 4
اما همينطور که ميبينيد بقيه کدها اجرا شدن و مانع از اجراي برنامه نشده.
? – Notice
اين نوع هم مثل انواع خطاهاي قبلي ميتونه خودکار توسط خود PHP درست بشه يا با استفاده از تابع trigger_error توسط کاربر ايجاد شه.به اين نوع نيمشه گفت خطا و بيشتر اطلاعاتي رو به کاربر ميدن که کاربر از وجود مشکلي باخبر کنن که اين مشکل ممنکه به يک خطا ختم بشه!!!!!!!!!!!
به عنوان مثال کد زير مقدار متغيري رو يکي اضافه ميکنه که مقدار اوليه نداره.اما همينطور که ميبينيد برنامه به خوبي اجرا ميشه و مقدار متغير يکي اضافه ميشه.
با استفاده از کلاس زير ميتونيد ايميل هايي که توي inbox دارين رو بخونين.اين کلاس ممکنه جاهايي کاربرد داشته باشه مثلا اينکه يک ايميل بسازيد و بخوايد به صورت خودکار ايميلهايي که بهش مياد رو پردازش کنيد و در جوابش چيزي رو ارسال کنيد.
21
$this->inbox();
22
}
23
24
// close the server connection
25
function close() {
26
$this->inbox = array();
27
$this->msg_cnt = 0;
28
imap_close($this->conn);
29
}
30
31
// open the server connection
32
// the imap_open function parameters will need to be changed for the particular server
33
// these are laid out to connect to a Dreamhost IMAP server
34
function connect() {
35
$this->conn = imap_open('{'.$this->server.'/notls}', $this->user, $this->pass);
36
}
37
38
39
function move($msg_index, $folder='INBOX.Processed') {
40
// move on server
41
imap_mail_move($this->conn, $msg_index, $folder);
42
imap_expunge($this->conn);
43
44
// re-read the inbox
45
$this->inbox();
46
}
47
48
// get a specific message (1 = first email, 2 = second email, etc.)
49
function get($msg_index=NULL) {
50
if (count($this->inbox) <= 0) {
51
retu array();
52
}
53
54
elseif ( ! is_null($msg_index) && isset($this->inbox[$msg_index])) {
55
retu $this->inbox[$msg_index];
56
}
57
58
retu $this->inbox[0];
59
}
طراحی وب سایت...
ما را در سایت طراحی وب سایت دنبال می کنید
برچسب : طراحی وب سایت, طراحی سایت, طراحی وب, نویسنده : saeed websitedesigne بازدید : 317 تاريخ : سه شنبه 12 شهريور 1392 ساعت: 19:12