سوال در مورد ===

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

سلام، لطفا کد زیر رو ببینید:

<?php

$m = 20;   #int
$n = 30;   #int

    var_dump($n == $m);
    echo '<br>';
    var_dump($n === $m);

?>

پاسخ سطر اول باید false باشه، دلیل: چون 20 برابر 30 نیست.

پاسخ سطر دوم باید true باشه، دلیل: چون هر دو integer هستن.

 - ولی پاسخ هر دو سطر تو خروجی false نشون داده می‌شه! چرا؟؟؟

فایل پیوست

2
حذف شده

سلام و احترام

زمانی که شما از عملگر == استفاده میکنید این به معنی است که شما 2 مقدار را با هم بررسی میکنید اما وقتی که شما از عملگر === استفاده میکنید هم مقادیر درون آن دو متغیر را بررسی میکنید هم نوع داده آن ها که شبیه به هم باشند. برای مثال جفت آن ها integer یا string و ... باشند

فایل پیوست

امیر صالحی

توسط

امیر صالحی

20 آبان 99

2
حذف شده

پاسخ رو یافتم.

درحالت === هم مقدار هم نوع کنترل میشه، یعنی هم integer بودن هم 30 بودن باید یکی باشه. (به‌عبارتی دقیقا باید یکی باشند).

اگر اشتباه می‌کنم بفرمایید. ممنون.

فایل پیوست

سهیل رنجبردوست

توسط

سهیل رنجبردوست

19 آبان 99

2
حذف شده

سلام 

در حالت == تنها مقدار چک میشه و تایپ چک نمیشه اما در حالت === هم مقدار متغیر و هم تایپ اون چک میشه و به همین دلیل هستش که شما تو حالت === هم false دریافت می کنید درواقع چه تایپ و چه مقدار اگر با هم یکی نباشند در هر دو حالت شما false رو دریافت میکنید.

فایل پیوست

میثم نصرتی

توسط

میثم نصرتی

19 آبان 99

2
حذف شده

سلام یه مثال میزنم شاید کمک کنه به دوستان

$n1 = 12;
$n2 = 12;
$n3 = "12";

var_dump($n1 == $n2);
// true
var_dump($n1 === $n2);
// true
var_dump($n1 == $n3);
// true
var_dump($n1 === $n3);
// false

 

 

فایل پیوست

محمد محمدی

توسط

محمد محمدی

16 بهمن 99