نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک

$v = "Colors";
settype($v, 'string');
if($v === 'hello'){
echo 'hello';
}
elseif($v == 'goodbye'){
echo 'goodbye';
}
else{
echo 'no';
}
//output: no

یعنی اینکه خروجی settype رو دوباره توی متغیر v$ نگذارین. چون اینطوری باعث میشه نتیجه تبدیل که true (تونسته تبدیل کنه) یا false (نتونسته تبدیل کنه) توی v$ ذخیره بشه و طبیعیه که نوع متغیر v$ میشه boolean !
خدا وکیلی اینقدر که محو دستوارت شده بودیم ، منم اصلا متوجه تعریف غلط settype نشده بودم "مثل همین دستوارت که من غلط نوشتم و درستش دستورات هست" ولی متوجه نشدید
هیچ زبانی اندازهء PHP اینقدر بی بند و بار نیست
نه اینطورم نیست ، اتفاقاَ چون متغیرها صریح تعریف نمیشن و php بر اساس محتوی نوع رو مشخص میکنه این رفتار ها طبیعی هست ، چون تا جایی که ممکنه سعی میکنه نوع رو به هم تبدیل کنه ، خب البته حقم داره ، هی شما گیجش میکنین یه طرف عدد میدین یه طرف رشته ، طفلی تو رو دروایسی گیر میکنه !
مثلا مگه شما جرات دارین تو سی شارپ بگین(if ("0" == 0
مظلوم گیر آوردین؟
به نظر من اینا خصوصیات خوبیه ،به شرطی که درست استفاده شه، ایراد نیست.
Type Juggling
Comparison Operators