تشخیص محتوای متغیر؟

fatahyegane

New Member
سلام من یک مقداری رو از کاربر دریافت میکنم ودر متغیری از نوع کاراکتری قرار میدم حالا میخوام اگر محتوای متغیر صرفا عددیه نوع اون متغیر رو به صحیح تبدیل کنم به نظر شما چطور تشخیص بدم که محتوای متغییر عددیه یا کرکتری؟ ممنون.
 

felix

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


php این خاصیت رو داره که نو متغییر هاش با مقادیری که ما داخل متغیر میریزیم تعیین میشه مثال

PHP:
$a=1;//integer
PHP:
$a='1';//string
PHP:
$a=false;//bool
همون طور که میبینید متغیر $a در هر شرایط بسته به مقداری که توش میریزیم تغییر میکنه اما برای اینکه بفهمیم داده ای که از کاربر گرفتیم چه نوع داده ای هست باید از دستوراتی مثل var_dump یا is_array یاis_int یا شبیه این استفاده کنید:cool:
 
آخرین ویرایش:

Milad

Well-Known Member
همینطور میتونید از تابع gettype استفاده کنید .

مثال :

PHP:
$a='milad';
echo gettype($a);

خروجی برابر String هست .
 

fatahyegane

New Member
بزارید مشکلم رو دقیقا بگم که بهتر متوجه بشید
من یک مقداری رو در یک فیلد از نوع varchar در جدول ذخیره میکنم که ممکنه این مقدار کاراکترهای A-Z ویااعداد 0-9 باشه . من این فیلد رو از جدول بیرون میکشم و با یک فیلد دیگر که ساختارش همینطوره مقایسه میکنم(<و>و>=و...) اما همونطوری که میدونید در مقایسه دو رشته فقط کارکترهای اول دو رشته مقایسه میشن مگر اینکه کارکتر های اول با هم برابر باشند وگرنه به مقایسه خاتمه میده .
ولی مشکل اینجا پیش میاد که محتوای این متغیرها(فیلدها) عدد باشند و من میخام در اون حالت مثل دو متغیر نوع int با هم مقایسه بشند در غیر این صورت نتیجه مقایسه زیر false میشود.
PHP:
$string1='9';
$string2='100';
if($string2>$string1){}
حالا دوستان با این توصیفات من چطور متوجه بشم که محتوای یک متغیر از نوع کارکتری عدد هست یا حروف . که اگر عدد بود نوع اون رو با settype به int تبدیل کنم.
ها؟؟؟
 
آخرین ویرایش:

Milad

Well-Known Member
من کلا راه های عجیب و مسخره زیاد به ذهنم میرسه :green: یکیش اینه :

PHP:
<?php
$a = '1';
$b = '4';

if ($a + 1 > 1){
settype($a,'integer');
}

echo gettype($a);//integer
?>
 

Masoud1365

مدیر انجمن
این راهی که گفتید برای اعداد منفی کار نمیکنه :wink:
تابع intval مقدار عدد صحیح رو به صورت int بهت بر میگردونه فقط مشکل اینه که مثلا 123test رو 123 بر میگردونه !
کلا میشه از این تابع استفاده کرد ولی قبلش با استفاده از عبارات منظم باید چک کنید که رشته و عدد رو داخل این تابع نبره و رشته رو بر گردونه !
 

Milad

Well-Known Member
یادگیری از شما برای ما بسی افتخاره مسعود جان :oops: به اونجاش فکر نکرده بودم :lol:
 

جدیدترین ارسال ها

بالا