परिभाषा और उपयोग
PHP को एक गतिशील रूप से टाइप की जाने वाली भाषा के रूप में जाना जाता है। एक चर की स्पष्ट प्रकार की घोषणा की न तो आवश्यकता है और न ही PHP में समर्थित है। C, C++ और Java के विपरीत, PHP वेरिएबल के प्रकार का निर्धारण उसे दिए गए मान से होता है, न कि अन्य तरीकों से। इसके अलावा, एक चर जब विभिन्न प्रकार का मान निर्दिष्ट किया जाता है, तो उसका प्रकार भी बदल जाता है। चर के गतिशील रूप से बदलते मूल्य से निपटने के लिए PHP के इस दृष्टिकोण को टाइप जॉगलिंग कहा जाता है।
$var="Hello"; // variable is string type $var=100; //same variable now becomes int
अभिव्यक्ति की गणना के दौरान टाइप बाजीगरी भी होती है। इस उदाहरण में, अंकों वाले एक स्ट्रिंग वैरिएबल को अतिरिक्त अभिव्यक्ति के मूल्यांकन के लिए स्वचालित रूप से पूर्णांक में बदल दिया जाता है
उदाहरण
<?php $var1=100; $var2="100"; $var3=$var1+$var2; var_dump($var3); ?>
आउटपुट
यह निम्नलिखित परिणाम देगा -
int(200)
यदि कोई स्ट्रिंग अंकों से शुरू होती है, तो गणना करते समय अनुगामी गैर-संख्यात्मक वर्णों को अनदेखा कर दिया जाता है। हालांकि, PHP पार्सर एक नोटिस जारी करता है जैसा कि नीचे दिखाया गया है
उदाहरण
<?php $var1=100; $var2="100 days"; $var3=$var1+var2; var_dump($var3); ?>
आउटपुट
यह निम्नलिखित परिणाम देगा -
PHP Notice: A non well formed numeric value encountered in ... int(200). में एक गैर-सुगठित संख्यात्मक मान का सामना करना पड़ा
टाइप कास्टिंग एक चर को एक निश्चित प्रकार के रूप में उपयोग करने के लिए मजबूर करता है। निम्नलिखित स्क्रिप्ट विभिन्न प्रकार के कास्ट ऑपरेटरों का उदाहरण दिखाती है
उदाहरण
<?php $var1=100; $var2=(boolean)$var1; $var3=(string)$var1; $var4=(array)$var1; $var5=(object)$var1; var_dump($var2, $var3, $var4, $var5); ?>
आउटपुट
यह निम्नलिखित परिणाम देगा -
bool(true) string(3) "100" array(1) { [0]=> int(100) } object(stdClass)#1 (1) { ["scalar"]=> int(100) }
एक चर को स्ट्रिंग में कास्ट करना डबल कोटेड स्ट्रिंग में संलग्न करके भी किया जा सकता है
उदाहरण
<?php $var1=100.50; $var2=(string)$var1; $var3="$var1"; var_dump($var2, $var3); ?>
आउटपुट
यह निम्नलिखित परिणाम देगा -
string(5) "100.5" string(5) "100.5"