जैसा कि हम जानते हैं define() और const दोनों PHP स्क्रिप्ट में एक कॉन्स्टेंट घोषित करने के लिए उपयोग किए जाते हैं।
सिंटैक्स
<?php
const VAR = 'FOO'
define('VAR', 'FOO');
?>
आइए इन दोनों के बीच अंतर पर चर्चा करें।
- इन दोनों के बीच मूल अंतर यह है कि const कॉन्स्टेंट्स को कंपाइल टाइम पर परिभाषित करता है, जबकि define() उन्हें रनटाइम पर परिभाषित करता है।
- हम const कीवर्ड का उपयोग कंडीशनल ब्लॉक्स में कॉन्स्टेंट घोषित करने के लिए नहीं कर सकते, जबकि define() के साथ हम इसे प्राप्त कर सकते हैं।
<?php if(){ const VAR = 'FOO'; // invalid } if(){ define('VAR', 'FOO'); //valid } ?>- const एक स्टेटिक स्केलर (नंबर, स्ट्रिंग या अन्य कॉन्स्टेंट्स जैसे true, false, null, __FILE__) स्वीकार करता है, जबकि define() कोई भी एक्सप्रेशन लेता है।
consts हमेशा केस सेंसिटिव होते हैं, जबकि define() आपको तीसरे आर्गुमेंट के रूप में true पास करके केस इनसेंसिटिव कॉन्स्टेंट्स परिभाषित करने की अनुमति देता है।
- const का उपयोग क्लास या इंटरफेस के भीतर क्लास कॉन्स्टेंट या इंटरफेस कॉन्स्टेंट घोषित करने के लिए भी किया जा सकता है, जबकि define() इस कारण से उपयोग नहीं किया जा सकता।
<?php class abc{ const VAR = 2; // valid echo VAR; // valid } // but class xyz{ define('XUV', 2); // invalid echo XUV;// invalid } ?>- उपरोक्त उदाहरण दर्शाता है कि हम const कीवर्ड के साथ क्लास के अंदर कॉन्स्टेंट घोषित कर सकते हैं लेकिन define() का उपयोग क्लास के अंदर कॉन्स्टेंट घोषित करने के लिए नहीं किया जा सकता।