where
विधि सख्त तुलना (===
) का उपयोग करती है, जिसका अर्थ यह भी मूल्य के प्रकार की जांच करता है। यदि, उदाहरण के लिए, एक स्ट्रिंग है और दूसरा नंबर है, तो यह कभी मेल नहीं खाएगा।
whereLoose
विधि ढीली तुलना (==
) का उपयोग करती है, जिसका अर्थ है कि यह मान के प्रकार की जांच नहीं करेगा। यदि, उदाहरण के लिए, एक स्ट्रिंग है और दूसरा नंबर है, तो यह तब भी मेल खाएगा जब उनके मान समान हों।
$collection = collect([['price' => 100], ['price' => 200]]);
$collection->where('price', '100'); // []
$collection->whereLoose('price', '100'); // [['price' => 100]]
आप the PHP docs में सभी मतभेदों की एक तालिका पा सकते हैं।
नोट: इस Laravel 5.3 में बदलने के बारे में है: where
विधि अब ढीला तुलना का उपयोग करेगा और whereLoose
विधि निकाल दिया जाएगा।
$collection = collect([['price' => 100], ['price' => 200]]);
$collection->where('price', '100'); // [['price' => 100]]
$collection->where('price', '===', '100'); // []
स्रोत
2015-11-13 16:24:38
[प्रलेखन] (http://php.net/manual/en/types.comparisons.php) भी परिणाम के बारे में विवरण शामिल हैं: सख्त समानता का उपयोग करने के लिए आपको 2 तर्क के रूप में
===
पास भेज देंगे दोनों ऑपरेटर का उपयोग करते समय तुलना की तुलना में। –धन्यवाद दोस्तों। क्या यह संभव है कि कोड की एक ही पंक्ति: $ टैग = ($ type == 'paid')? 0: 1; $ अनुबंध = $ उपयोगकर्ता-> addressbook_user-> जहां ('paid_or_not', $ टैग); pay_or_not tinyint के रूप में, दो अलग ओएस (उबंटू और मैक ओएस एक्स योसेमेट) पर, लेकिन उसी mysql संस्करण के साथ, मुझे दो अलग-अलग परिणाम दिए? इसके बजाय जहां लूज ने एक ही सही परिणाम दिया? @edit: ठीक है मैं PHP मैनुअल पर टेबल की जांच करूंगा। – Jacson
वास्तव में आपकी अच्छी जानकारी के लिए धन्यवाद। – antoniputra