تبدیل نوع در PHP به فرآیندی اطلاق میشود که در آن نوع دادهها از یک نوع به نوع دیگری تغییر پیدا میکند. این فرآیند در مواقعی که نیاز به تطبیق انواع مختلف دادهها برای انجام عملیاتهای مختلف وجود دارد، ضروری است. تبدیل نوع در PHP میتواند به دو روش اصلی انجام شود: تبدیل نوع به صورت اتوماتیک «Implicit» که PHP خودکار این تبدیل را انجام میدهد و تبدیل نوع به صورت دستی «Explicit» که برنامهنویس بهطور خاص نوع داده را تغییر میدهد.
مقدمه
تبدیل نوع در PHP به صورت اتوماتیک زمانی رخ میدهد که PHP خود بهطور پیشفرض، نوع دادهها را برای انجام عملیاتهای خاص مانند جمع یا مقایسه، تغییر میدهد. برای مثال، وقتی که یک عدد صحیح و یک عدد اعشاری با هم جمع میشوند، PHP بهطور خودکار عدد صحیح را به نوع اعشاری تبدیل میکند.
از سوی دیگر، تبدیل نوع دستی زمانی استفاده میشود که برنامهنویس بخواهد بهطور خاص نوع دادهای را تغییر دهد تا به خواسته خاص خود برسد. این کار با استفاده از عملگرهای خاص یا توابعی مانند int , float , یا ()settype انجام میشود. در این آموزش، از سری مقاله های مجله پی استور، با تبدیل نوع در PHP آشنا میشویم تا یک مقدار یک نوع را به نوع دیگری تبدیل کنیم.
معرفی تبدیل نوع اعشاری در PHP
تبدیل نوع به ما اجازه میدهد که مقدار یک نوع داده را به نوع دیگری تغییر دهیم. برای انجام این کار، از عملگرهای تبدیل نوع در PHP استفاده میشود. این عملگرها به ما کمک میکنند تا دادهها را از یک نوع به نوع دیگر تبدیل کنیم، بهویژه زمانی که نوع داده بهطور خاص با عملیات مورد نظر سازگار نیست. عملگرهای تبدیل نوع در PHP عبارتند از:
تبدیل | اپراتورها |
آرایه | آرایه |
بولی | بول یا بولی |
عدد صحیح | عدد صحیح یا int |
شی | شی |
شناور | واقعی، دوبل یا شناور |
رشته | رشته |
در ادامه چند مثال از استفاده از عملگرهای تبدیل نوع را بررسی میکنیم.
تبدیل مقدار به عدد صحیح در php
برای تبدیل یک مقدار به عدد صحیح، از عملگر int استفاده میشود. عملگر int یک مقدار اعشاری را به عدد صحیح تبدیل میکند و نتیجه را به سمت صفر گرد میآورد. این به این معناست که بخش اعشاری از عدد حذف میشود و فقط قسمت صحیح باقی میماند. بهعنوان مثال
<?php echo (int)12.5 . '<br>'; // 12 echo (int)12.1 . '<br>'; // 12 echo (int)12.9 . '<br>'; // 12 echo (int)-12.9 . '<br>'; // -12
فرض کنید که یک رشته «string» دارید و میخواهید آن را به عدد صحیح «integer» تبدیل کنید:
<?php $message = 'Hi'; $num = (int) $message; echo $num; // 0
نتیجه ممکن است آن چیزی که انتظار دارید نباشد. اگر یک رشته شامل عدد باشد یا با عدد شروع شود، عملگر int آن را به مقدار عددی متناظر تبدیل میکند. اما اگر رشته شامل عدد نباشد، مقدار آن را صفر در نظر میگیرد. برای مثال:
<?php $amount = (int)'100 USD'; echo $amount; // 100
در این مثال، عملگر int رشته ۱۰۰ USD را به عدد صحیح تبدیل میکند. توجه داشته باش که عملگر int مقدار null را به صفر ۰ تبدیل میکند. برای مثال:
<?php $qty = null; echo (int)$qty; // 0
تبدیل مقدار به عدد اعشاری در php
برای تبدیل یک مقدار به عدد اعشاری، از عملگر float استفاده میشود. این عملگر یک مقدار عددی یا متنی را به عدد اعشاری تبدیل میکند. اگر مقدار داده شده از قبل عدد صحیح یا رشتهای که شامل عدد است باشد، عملگر float آن را به نوع داده اعشاری تبدیل میکند. برای مثال:
<?php $amount = (float)100; echo $amount; // 100
برای تبدیل یک مقدار به رشته، از عملگر string استفاده میکنیم. این عملگر یک مقدار عددی یا دادهای دیگر را به رشته تبدیل میکند. بهعنوان مثال، اگر بخواهیم عدد ۱۰۰ را به رشته تبدیل کنیم، از عملگر string استفاده میکنیم. برای مثال:
<?php $amount = 100; echo (string)$amount . " USD"; // 100 USD
در این حالت نیازی به استفاده از عملگر string نداریم، زیرا PHP قابلیتی به نام تطبیق نوع «TypeJuggling» دارد که بهصورت خودکار عدد صحیح را به رشته تبدیل میکند.
<?php $amount = 100; echo $amount . ' USD'; // 100 USD
عملگر string در PHP مقدار true را به رشته “۱” و مقدار false را به یک رشته خالی “” تبدیل میکند. این ویژگی در تبدیل نوع دادهها به رشته برای مقادیر منطقی بسیار مفید است. برای مثال:
<?php $is_user_logged_in = true; echo (string)$is_user_logged_in; // 1
خروجی:
۱
عملگر string مقدار null را به یک رشته خالی تبدیل میکند. عملگر string یک آرایه را به رشته Array تبدیل میکند. برای مثال:
<?php $numbers = [1,2,3]; $str = (string) $numbers; echo $str; // Array
و هشدار دریافت خواهید کرد که در حال تلاش برای تبدیل یک آرایه به رشته هستید.
Warning: Array to string conversion in ...
نتیجه گیری
تبدیل نوع در PHP به معنای تغییر نوع دادهها از یک نوع به نوع دیگر است و میتواند به صورت اتوماتیک «Implicit» یا دستی «Explicit» انجام شود. در تبدیل نوع اتوماتیک، PHP به طور خودکار نوع دادهها را بر اساس نیاز تغییر میدهد، اما در تبدیل نوع دستی، برنامهنویس باید از توابعی مانند int , float , یا ()settype استفاده کند. این قابلیتها به برنامهنویسان این امکان را میدهند که دادهها را به شکل دلخواه برای انجام عملیاتهای مختلف آماده کنند و در نتیجه، انعطافپذیری بالایی در مدیریت دادهها بهوجود میآید.