آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل کوچک در تعریف constant

SaeiD-as  8 سال پیش  8 سال پیش
0 0

سلام دوستان

سعی دارم constant هایی بنویسم که تمامی ارورهای سمت سرور را برگرداند؛ یک نمونه برای ارور دریافت نام نوشته ام و انتظار دارم که مقدار عددی آنرا برگرداند، بصورت زیر:

define(error_code_name, 1);

 function getName(){
    if(strlen($_REQUEST['name']) > 2){
        $user_name = $_REQUEST['name'];
    } else {
        $record = array();
        $record[success] = false;
        $record[error_code] = error_code_name;
        echo json_encode($record);
        return;
    }
}

زمانی که تابع getName() را صدا می کنم، خروجی دریافتی ام به این صورت است:

 {"success":false,"error_code":error_code_name}

مشکل کد من کجاست که بجای مقدار constant خود آنرا چاپ می کند؟

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
سجاد عباسی  8 سال پیش
+1 0

باید به این صورت تعریف کنید

define("error_code_name", 1);

منبع: http://php.net/manual/en/function.define.php

0 0
فرقی نکرد! باز هم همان قبلی را نشان می دهد (8 سال پیش)
پاسخ به سوال 
SaeiD-as  8 سال پیش
0 0

دلیلش رو با کمی بررسی متوجه شدم:
من در ابتدای کار این شرط رو قرار داده ام:

 if(isset($_REQUEST['action'])){
    $action = $_REQUEST['action'];
}

زمانی که این شرط برقرار می شود این دستور را می دهم:

if($action=="getName"){   
getName();
}

و پس از آن constant تعریف کرده ام:

 define(error_code_name, 1);

در آخر هم تابعم را صدا کرده ام:

 function getName(){
    if(strlen($_REQUEST['name']) > 2){
        $user_name = $_REQUEST['name'];
    } else {
        $record = array();
        $record[success] = false;
        $record[error_code] = error_code_name;
        echo json_encode($record);
        return;
    }
}

مشکل این کد این است که زمانی action ست می شود constant تعریف نشده است، پس بایستی در ابتدا constant را تعریف کرد و سپس تابع را خواند، به این صورت:

 
define(error_code_name, 1);
if(isset($_REQUEST['action'])){
    $action = $_REQUEST['action'];
}
if($action=="getName"){   
getName();
}
function getName(){
    if(strlen($_REQUEST['name']) > 2){
        $user_name = $_REQUEST['name'];
    } else {
        $record = array();
        $record[success] = false;
        $record[error_code] = error_code_name;
        echo json_encode($record);
        return;
    }
}

 


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .