آموزش نکاتی قابل توجه برای تابع ها پی اچ پی

دسته بندی: آموزش
زمان مطالعه: 6 دقیقه
۱۷ مرداد ۱۳۹۱

فهرست محتوای این مقاله

    در این بخش ، از سری آموزش PHP شما را با تابع های مربوط به داده ها از قبیل تبدیل نوع ، چک کردن نوع فعلی و... آشنا خواهیم ساخت ، همچنین در این بخش شما را با ثابت ها در PHP آشنا خواهیم ساخت.

    تغییر نوع داده ها به صورت مستقیم در PHP :

    همانطور که در بخش های پیشین گفته بودیم ، زبان PHP شامل چندین نوع ، نوع داده ای میباشد ، از قبیل : integer , string , object , array و... در این بخش قصد داریم پس از تعریف متغیر ، در هنگام نیاز ، نوع داده ای خود را با استفاده از تابع های از پیش آماده شده در زبان php تبدیل نمائیم.

    داده ها در زبان php ، بسیار ساده هستند ، و البته هوشمند ، اما شاید از خودتان بپرسید چرا از کلمه هوشمند استفاده کردم؟؟؟برای درک هوشمندی داده ها در php به مثال زیر توجه نمائید :

    <?php
    $result=50; // integer
    $string = "100"; // string
    echo $output = $result + $string;
    ?></p>
    <p style="text-align: left;">

    بعد از اجرا کردن کد فوق ، حتما خروجی را مشاهده نموده اید ، که برابر با 150 می باشد ، اما چرا 150؟؟؟

    در قسمت اول کد فوق ، ما یک متغیر با مقدار 50 تعریف نموده ایم و در خط دوم یک متغیر دیگر با مقدار رشته 100 ، توجه کنید رشته 100 تعریف نموده ایم (این متغیر در حال حاضر یک رشته محسوب می شود و یک عدد نیست!) و در خط آخر کد ، ما دو متغیر را با یکدیگر جمع نموده ایم ، سپس در یک متغیر قرار داده ایم و آن را چاپ کرده ایم.

    اما نکته قابل اینجاست که در زمان جمع کردن دو متغیر ، php به صورت هوشمندانه تبدیل نوع را انجام می دهد و متغیر رشته ای ما را به یک integer تبدیل می کند.

    حال به مثال زیر نیز توجه نمائید :

    <?php
    $result="7 learn"; // integer
    $string = 20; // string
    echo $output = $result + $string;
    ?>

    به نظر شما خروجی کد فوق چیست؟؟؟ در خط اول این کد ، ما یک متغیر با مقدار 7 learn تعریف نموده ایم ، سپس یک متغیر دیگر با مقدار 20 ایجاد نموده ایم اما وقتی که دو متغیر پس از اعمال جمع ، چاپ نموده ایم ، خروجی به ما 27 نمایش داده است ، پس شاید تا به حال متوجه شده باشید که php از رشته صرف نظر نموده و فقط اعداد را با یکدیگر جمع می کند.

    دریافت نوع داده ای یک متغیر :

    اگر شما بخواهید بفهمید که یک متغیر از چه نوع داده ای می باشد ، و یا قصد دارید در یک شرط و حلقه ، مشخص کنید که متغیر شما اگر از نوع خاماصی بود کار خاصی را انج دهد، از تابع gettype استفاده می شود.

    تابع gettype ، نوع متغیر مورد نظر شما را بر می گرداند ، که 8 مقدار را از قبیل integer , boolean , double , object ,resource , string , unknown type بر می گرداند.

    به مثال زیر توجه نمائید :

    <?php
    $result="7 learn"; // integer
    $string = 20; // string
    echo  gettype($string) . "<br>";
    echo  gettype($result) . "<br>";
    ?>

    در مثال فوق ، با استفاده از تابع gettype ، نوع متغیرهای ایجاد شده توسط ما را چاپ می نماید.

    برای آشنایی بیشتر به مثال زیر نیز توجه نمائید :

    <?php
    
    $data = array(1, 1., NULL, new stdClass, 'foo');
    
    foreach ($data as $value) {
    echo gettype($value) . "<br>", "\n";
    }
    
    ?>
    

    در قطعه کد فوق ، ما یک آرایه ، متشکل از چندین نوع ، نوع داده ای تعریف نموده ایم ، سپس با قرار دادن یک حلقه برای روی آرایه (foreach) و استفاده از تابع gettype نوع های مقادیر آرایه را بر می گردانیم .

    تابع های تعیین کننده ی نوع داده ای :

    حدود 10 تابع در php وجود دارد که برای تعیین نوع یک متغیر به کار می روند :

    • is_array :مشخص کننده متغیری از نوع آرایه می باشد.
    • is_bool : مشخص می کند که آیا متغیر از نوع boolean هست یا خیر.
    • is_floot : مشخص می کند که آیا متغیر اعشاری است یا خیر.
    • is_integer : مشخص می کند که آیا متغیر از نوع صحیح است یا خیر.
    • is_null : مشخص می کند که آیا متغیر  از نوع تهی است یا خیر.
    • is_numeric : مشخص می کند که آیا متغیر از نوع عددی است یا خیر.
    • is_object : مشخص می کند که آیا متغیر یک شی است یا خیر.
    • is_resource : این تابع برای مشخص کردن وجود منبع می باشد .
    • is_scalar : مشخص می کند که آیا متغیر از نوع عددی است یا خیر.
    • is_string : مشخص می کند که آیا متغیر از نوع رشته ای است یا خیر.

    مثال هایی برای تعیین کننده ی نوع متغیر :

    <?php
    $var=5;
    
    if(is_null($var))
    echo 'null';
    if(is_string($var))
    echo 'string';
    if(is_array($var))
    echo 'array';
    if(is_int($var))
    echo 'integer';
    if(is_bool($var))
    echo 'boolean';
    if(is_float($var))
    echo 'float';
    
    ?>
    

    در قطعه کد فوق ، یک متغیر با مقدار 5 که می شود از نوع integer تعریف نموده ایم ، سپس این متغیر با تابع های مختلف تعیین نوع ، مقایسه می شود و خروجی ما integer بر می گردد.

    یک مثال برای resource :

    <?php
    
    $db_link = @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
    if (!is_resource($db_link)) {
    die('Can\'t connect : ' . mysql_error());
    }
    
    ?>

    در قطعه کد بالا ، ما از دیتابیس استفاده نموده ایم ، فعلا به کد اصلی کاری نخواهیم داشت ، در فصل های آینده کار با دیتابیس را خواهیم گفت ، ولی در خط دوم این قطعه کد ، ما یک شرط قرار داده ایم که اگر آدرس ویا اطلاعات دیتابیس ما غلط بود (با استفاده از is_resource) ، برنامه exit شود.

    ثابت ها در php :

    در ابتدا بهتر مفهوم ثابت را برای شما قابل درک نمائیم ، ثابت دقیقا کاربردی همانند یک متغیر را دارد ولی با این تفاوت که مقدار یک ثابت ، در طول برنامه ، به هیچ عنوان تغییر پیدا نمیکند و تنها مقدار اوایه خود را حفظ می نماید ، ثوابت در php بدین صورت تعریف می شوند:

    <?php
    define("milad",17);
    ?>

    ثابت ها در برنامه ها بسیار کاربردی هستند ، اگر بخواهیم یک مثال برای درک مفهوم ثوابت بزنیم ،  عدد پی یا 3.14 بهترین مثال است :

    <?php
    define("PI",3.14);
    echo $result= 5 * PI;
    ?>

    نکته :

    برای تعریف یک ثابت از علامت $ استفاده نمی شود ، همچنین برای چاپ مقدار یک ثابت نیز از $ استفاده نمی شود.

    نکته :

    بعد از اینکه یک ثابت را با مقدار اولیه تعریف نمودید ، در طی برنامه ، به هیچ عنوان نمی توانید مقدار آن را تغییر دهید.

    نکته :

    ثابت ها همواره و به صورت Default در php به صورت Global یا عمومی تعریف می شوند ، و در کل برنامه قابل دسترسی هستند.

    ان شاالله در قسمت بعدی آموزش ، شما را با نوشتن تابع ، تابع های بازگشتی ، و قلمرو متغیر ها آشنا خواهیم ساخت ،  قسمت بعدی آموزش ، قسمت پایانی بخش Basic آموزش php می باشد ، به امید خدا ، اولین پروژه کاربردی را از جلسه بعد شروع خواهیم کرد.

    نویسنده
    19 ساله، ساکن تهران و دانشجوی مهندسی کامپیوتر ؛طراح وب سایت ، سئو کار با سابقه کاری ، مطالعه بسیار زیاد در امر سئو و برندینگ اینترنتی و آشنایی با زبان های همچون PHP,JavaScript,html5,CSS3, Jquery ، با زبان انگلیسی آشنایی کامل دارم و شدیدا طرفدار استقلال و فرهاد مجیدی هستم.

    نظرات کاربران

    elnaz

    ba salam
    mataleb khobe faghat lotf konid to porojhe tozih bedin

    احسان امیدی

    سلام.آقا میلاد مطلب مفیدی بو د تشکر.لقمان جان مطلب فرستادم .بزارش بی زحمت.فعلاً

    علی حیدری

    دیر ب دیر میپستی این بخشو حاج میلاد.اما خو بازم دمت مشعل المپیک.

    لقمان آوند

    مطلب مفیدی بود … مثل بقیه مطالبت .

    میلاد حیدری

    شما لطف دارید

    hatyla

    خسته نباشید

    نیاز به لاگین

    برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
    گزارش مشکل