परिभाषा और उपयोग
PHP को डायनामिकली टाइप्ड भाषा के रूप में जाना जाता है। PHP में वेरिएबल की स्पष्ट प्रकार घोषणा न तो आवश्यक है और न ही समर्थित। C, C++ और Java के विपरीत, PHP वेरिएबल का प्रकार उस मान द्वारा तय होता है जो उसे असाइन किया गया है, न कि इसके विपरीत। इसके अलावा, जब किसी वेरिएबल को अलग प्रकार का मान असाइन किया जाता है, तो उसका प्रकार भी बदल जाता है। PHP का वेरिएबल के डायनामिकली बदलते मान से निपटने का यह दृष्टिकोण टाइप जुगलिंग (Type Juggling) कहलाता है।
$var = "Hello"; // वेरिएबल स्ट्रिंग प्रकार का है $var = 100; // वही वेरिएबल अब int बन गया है
टाइप जुगलिंग अभिव्यक्ति की गणना के दौरान भी होता है। इस उदाहरण में, अंकों वाली एक स्ट्रिंग वेरिएबल स्वचालित रूप से जोड़ अभिव्यक्ति के मूल्यांकन के लिए पूर्णांक में परिवर्तित हो जाती है।
उदाहरण
उदाहरण 1: स्ट्रिंग का स्वचालित पूर्णांक में रूपांतरण
<?php $var1 = 100; $var2 = "100"; $var3 = $var1 + $var2; var_dump($var3); ?>
आउटपुट
int(200)
उदाहरण 2: अग्रणी अंकों वाली स्ट्रिंग का व्यवहार
यदि कोई स्ट्रिंग अंकों से शुरू होती है, तो अनुगामी गैर-संख्यात्मक वर्ण (यदि कोई हों) गणना के दौरान नजरअंदाज कर दिए जाते हैं। हालांकि, 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)
टाइप कास्टिंग (Type Casting)
टाइप कास्टिंग किसी वेरिएबल को एक निश्चित प्रकार के रूप में उपयोग करने के लिए बाध्य करती है। निम्न स्क्रिप्ट विभिन्न टाइप कास्ट ऑपरेटरों का उदाहरण दिखाती है:
उदाहरण 3: विभिन्न टाइप कास्ट ऑपरेटर
<?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)
}
उदाहरण 4: स्ट्रिंग में कास्टिंग - दो तरीके
किसी वेरिएबल को स्ट्रिंग में कास्ट करना डबल-कोटेड स्ट्रिंग में संलग्न करके भी किया जा सकता है:
<?php $var1 = 100.50; $var2 = (string)$var1; $var3 = "$var1"; var_dump($var2, $var3); ?>
आउटपुट
string(5) "100.5" string(5) "100.5"