انواع داده(Data Types), دستور شرطی if و عملگر ها(Operators)

پرسیده شده
فعالیت 1154 روز پیش
دیده شده 625 بار
0

Input: if('' == ۰) echo ‘OK۱’;

Output: 

 

Input: if('' == false) echo ‘OK۲’;

Output: ‘OK۲’

 

Input: if('false' == ۰) echo ‘OK۳’;

Output;

 

Input: if('false' == false) echo ‘’OK۴;

Output: 

 

سلام. به دستورات و خروجی های بالا توجه کنید.

 در دستور اول و دوم, چرا وقتی در دستور شرطی(ایف) رشته خالی('') رو با صفر مقایسه می کنم خروجی نمیده ولی وقتی رشته خالی رو با (فالس) مقایسه می کنم خروجی میده؟

در دستور سوم و چهارم, در هر دو صورت خروجی نمیده.

این به نوع داده, دستور شرطی(ایف) یا عمگر بستگی داره؟

فایل پیوست

قاسمی
قاسمی

28 بهمن 99

0
حذف شده

سلام و احترام

از چه ورژن php استفاده میکنید؟

فایل پیوست

امیر صالحی

توسط

امیر صالحی

30 بهمن 99

0
حذف شده

8.0.0

فایل پیوست

قاسمی

توسط

قاسمی

30 بهمن 99

1
حذف شده
var_dump(0 == ''); // bool(true)
var_dump(0 === ''); // bool(false)
var_dump(false == ''); // bool(true)
var_dump(false === ''); // bool(false)
var_dump('false' == 0); // bool(true)
var_dump('false' === 0); // bool(false)
var_dump('false' == false); // bool(false)
var_dump('false' === false); // bool(false)

این مقایسه بستگی به عملگرها و عملور ها داره، این چیزیه که من ازشون خروجی گرفتم برای تست هم میتونید همین کار رو روی سیستم خودتون بررسی کنید

 

 

 

فایل پیوست

امیر صالحی

توسط

امیر صالحی

30 بهمن 99

0
حذف شده

ویندوز ۱۰

Xampp v.۳.۲.۴

PHP v.۸.۰.۰

 

دقیقا مشکل همینجاس حالا خروجی های من رو نگاه کنید.

Input:
var_dump(0 == '');
echo '<br>';
var_dump(0 === '');
echo '<br>';
var_dump(false == '');
echo '<br>';
var_dump(false === '');
echo '<br>';
var_dump('false' == 0);
echo '<br>';
var_dump('false' === 0);
echo '<br>';
var_dump('false' == false);
echo '<br>';
var_dump('false' === false);

Output:
bool(false)
bool(false)
bool(true)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)

توی وبسایت http://phptester.net هم تست کردم همون خروجی رو داد که شما فرمودین (PHP v.7.4) ولی روی سیستم خودم نمیدونم مشکل از کجاست که خروجی ها اینجوری میشه؟

فایل پیوست

قاسمی

توسط

قاسمی

30 بهمن 99

حذف شده
php که من درحال استفاده هستم 8.0 هستش، دستور php -v رو توی cmd اجرا کنید لطفا
امیر صالحی

1 اسفند 99

0
حذف شده

دستوری که فرمدین به صورت خام توی CMD اجرا نمیشه.

ورژن php ۸.۰.۰

فایل پیوست

قاسمی

توسط

قاسمی

5 اسفند 99

0
حذف شده

ظاهرا XAMPP با سیستم عامل من سازگاری نداره یا یه مشکلی هست که نمیدونم چیه و به دلیل کمبود وقت XAMPP رو حذف کردم و از WAMP استفاده می کنم. الان خروجی ها درسته. ورژن PHP 7.3.21

فایل پیوست

قاسمی

توسط

قاسمی

5 اسفند 99

0
حذف شده

الان سوال من اینجاس که چرا خروجی ها به این صورت میشه؟

 

به موارد زیر نگاه کنید. همون خروجی های درست جدید است.

* در خط های زیر که با * مشخص کردم چرا String خالی برابر با ۰, false هست و false به صورت String هم برابر ۰ هست ولی ** false به صورت String برابر false به صورت Boolean نیست؟

منطقی نیست اگر بنابر مقدار String باشه که String خالی با ۰ و false برابر هست و false به صورت String هم برابر ۰ هست ولی اگر false به صورت String برابر ۰ هست پس رشته ای که مقدار داره نباید برابر ۰ یا false باشه ولی الان false به صورت String برابر ۰ هست ولی برابر false نیست؟

میشه توضیح بدید به چه صورتی هست؟ چجوری عملگر اینجا مقایسه انجام میده؟

PHP: v7.3.21

Input:
var_dump(0 == '');
 *
echo '<br>';
var_dump(0 === '');
echo '<br>';
var_dump(false == '');
 *
echo '<br>';
var_dump(false === '');
echo '<br>';
var_dump('false' == 0);
 *
echo '<br>';
var_dump('false' === 0);
echo '<br>';
var_dump('false' == false);
 **
echo '<br>';
var_dump('false' === false);

Output:
C:\wamp64\www\test\index.php:3:boolean true

C:\wamp64\www\test\index.php:5:boolean false

C:\wamp64\www\test\index.php:7:boolean true

C:\wamp64\www\test\index.php:9:boolean false

C:\wamp64\www\test\index.php:11:boolean true

C:\wamp64\www\test\index.php:13:boolean false

C:\wamp64\www\test\index.php:15:boolean false

C:\wamp64\www\test\index.php:17:boolean false

 

فایل پیوست

قاسمی

توسط

قاسمی

5 اسفند 99

1
حذف شده

سلام. من یه تاپیک توی StackOverflow پیدا کردم که در مورد همین سوال من یه نفر اونجا پرسیده بود. بحث سر تبدیل نوع داده قبل و بعد از مقایسه هست.

 

لینکش رو میتونید پایین ببینید.

 

و یه مسئله دیگه واقعا برای این آموزشگاه متاسفم من و دیگر دانشجویان دوره ها رو با مبلغ بالایی خریدیم که فکر نکنم دوره گرونتر از این توی ایران باشه, که اساتید سوالات رو پاسخ بدن ولی اساتید که پاسخگو نیستن هیچ, کس دیگه ای هم پاسخی نداد. فقط یک نفر که اونم بالا می تونید ببینید و منم پاسخم رو نگرفتم.

 

Link

فایل پیوست

قاسمی

توسط

قاسمی

10 اسفند 99

حذف شده
سوال من هم بود البته وقتی پرسیدن. تعجب کردم که چرا جواب ندادن
Atena Sajjadi

11 مرداد 00