PHP कीवर्ड 'var' क्या करता है?


427

यह शायद एक बहुत ही तुच्छ प्रश्न है, लेकिन मुझे इसका जवाब न तो वेब सर्च इंजन के जरिए मिल पाया है और न ही php.net पर। कृपया मुझे सीधे वहां भेजें जहां मैं इस बारे में पढ़ सकता हूं, अगर आपको समझाने का समय नहीं मिला है।

  1. PHP में 'var' कीवर्ड का क्या अर्थ है?
  2. क्या PHP4 और PHP5 के बीच कोई अंतर है?

4
मुझे लगता है कि जब आपने ३० जुलाई २०० ९ को यह प्रश्न पूछा था, तो यह अभी तक php.net/manual/en/language.oop5.visibility.php ?: पर प्रकाशित नहीं हुआ था ? नोट: PHP ४ विधि के साथ एक चर घोषित करने की विधि? var कीवर्ड अभी भी संगतता कारणों (सार्वजनिक कीवर्ड के लिए एक पर्याय के रूप में) के लिए समर्थित है। 5.1.3 से पहले PHP 5 में, इसके उपयोग से E_STRICT चेतावनी उत्पन्न होगी। " या शायद आपको यह नहीं मिला था। लेकिन इसका जवाब स्पष्ट रूप से php.net पर बताया गया है।
जयम मोंटोया

यह देखना वाकई आश्चर्यजनक है कि PHP ने इन वर्षों में क्या यात्राएँ की हैं!
मेहरदाद शोखरी

जवाबों:


384

यह PHP4 में वर्ग सदस्य चर घोषित करने के लिए है, और अब इसकी आवश्यकता नहीं है। यह PHP5 में काम करेगा, लेकिन E_STRICT5.0.2 से संस्करण 5.1.2 तक PHP में एक चेतावनी को बढ़ाएगा , जब इसे हटा दिया गया था। PHP 5.3 के बाद से, var un-deprecated हो गया है और 'जनता' का एक पर्याय है।

उदाहरण उपयोग:

class foo {
    var $x = 'y'; // or you can use public like...
    public $x = 'y'; //this is also a class member variables.
    function bar() {
    }
}

10
"नोट: varकीवर्ड के साथ एक चर घोषित करने की PHP 4 विधि अभी भी संगतता कारणों ( publicकीवर्ड के लिए एक पर्याय के रूप में ) के लिए समर्थित है । 5.1.3 से पहले PHP 5 में, इसका उपयोग एक E_STRICTचेतावनी उत्पन्न करेगा ।" php.net/manual/en/language.oop5.visibility.php EDIT: मैंने अभी-अभी देखा कि पहले ही एक अन्य उत्तर में उद्धृत किया जा चुका है । लेकिन आपको अपने अनुसार एडिट करना चाहिए।
Sk8erPeter

इसका अर्थ है कि सदस्य चर के लिए कीवर्ड का उपयोग करना आवश्यक है public। क्या यह सच है? एक बस नहीं डाल सकते हैं $x;?
limeandcoconut

1
इसलिए यह सार्वजनिक / निजी और पूरी तरह से अनदेखी करने वाले संस्करण के साथ चिपके रहने की सिफारिश की जाती है क्योंकि हम PHP के पदावनत संस्करणों के साथ काम करने के बारे में चिंतित नहीं हैं?
NoodleOfDeath

1
2019 तक: php-fig.org/psr/psr-12/#43-properties-and-constants बताता है कि varइसका उपयोग नहीं किया जाना चाहिए, और दृश्यता सभी गुणों पर घोषित की जानी चाहिए।
चार्ल्स वुड

79

varकीवर्ड के लिए प्रयोग किया जाता है PHP 4 में एक वर्ग में घोषित चर :

class Foo {
    var $bar;
}

PHP 5 के साथ संपत्ति और विधि दृश्यता ( public, protectedऔर private) शुरू की गई थी और इस तरह varअनुचित है।


17
PHP में 5.3 varde-deprecated :) है
Ionu Stan G. Stan

8
यदि यह डी-डिप्रेस्ड है, तो 5.3 में अब सबसे अच्छा अभ्यास क्या है - इसका उपयोग करने के लिए या इसका उपयोग करने के लिए नहीं? क्या आप इसका उपयोग कर सकते हैं private var $foo = 'bar';?
टॉम ऑस्टर

1
किसी को भी पता है कि यह क्यों पदावनत किया गया था?
साइमन पूर्व

19
इसे 5.1.3 में कम किया गया था - केवल दिए गए कारण "संगतता कारणों के लिए" हैं । मुझे लगता है कि सबसे अच्छा अभ्यास केवल इसका उपयोग करना है यदि आपको PHP 4 के साथ संगत होने की आवश्यकता है। निश्चित रूप से ऐसा न करें private var- जो चीजों को वास्तविक रूप varसे तोड़ देगा, जैसा कि publicPHP 5 में केवल एक पर्याय है ।
सिनकोडेनडा

2
varpublicस्थैतिक सदस्यों या स्थिरांक घोषित करने के लिए इसका उपयोग नहीं किया जा सकता है क्योंकि यह एक सही पर्याय नहीं है।
कॉलिन ओ'डेल

27

मैं http://www.php.net/manual/en/language.oop5.visibility.php से उद्धृत करता हूं

नोट: PHP 4 चर विधि के साथ एक चर घोषित करने के लिए अभी भी संगतता कारणों के लिए समर्थित है (सार्वजनिक कीवर्ड के लिए एक पर्याय के रूप में)। 5.1.3 से पहले PHP 5 में, इसका उपयोग एक E_STRICTचेतावनी उत्पन्न करेगा ।


मैंने परीक्षण किए। E_STRICT नहीं लौटा! sandbox.onlinephpfunctions.com/code/…
वालेस मैक्सटर्स

1
@WallacedeSouza, ऐसा इसलिए है क्योंकि आपने अपने उदाहरण में PHP 7 का उपयोग किया है। यह केवल संस्करण 5.0 - 5.1.3
RedClover

8

उत्तर: से php 5.3 और >, varकीवर्ड के बराबर है publicजब एक वर्ग के अंदर चर घोषणा की।

class myClass {
  var $x;
}

के रूप में ही है ( php 5.3 और के लिए >):

class myClass {
  public $x;
}

इतिहास: यह पहले कक्षाओं में चर घोषित करने के लिए आदर्श था, हालांकि बाद में मूल्यह्रास हो गया, लेकिन बाद में (PHP 5.3) यह बिना मूल्यह्रास हो गया।


5

तो मूल रूप से यह एक पुरानी शैली है और PHP के नए संस्करण के लिए इसका उपयोग नहीं करते हैं। इसके बजाय सार्वजनिक कीवर्ड का उपयोग करना बेहतर है; अगर आपको var कीवर्ड से प्यार नहीं है। इसलिए उपयोग करने के बजाय

class Test {
    var $name;
}

उपयोग

class Test {
   public $name;
}

तुमने यह क्यों कहा? क्या वहाँ varपदावनत होने की खबर है जिसे मैंने सुना है? दो का पर्यायवाची होना चाहिए
NappingRabbit

PHP मैनुअल से: "PHP कीवर्ड के साथ एक चर घोषित करने की PHP 4 विधि अभी भी संगतता कारणों (सार्वजनिक कीवर्ड के लिए एक पर्याय के रूप में) के लिए समर्थित है।" php.net/manual/en/language.oop5.visibility.php
तोमर


1

var का उपयोग सार्वजनिक की तरह किया जाता है। यदि किसी वर्ग var $ a में इस तरह के संस्करण को घोषित किया जाता है; अगर इसका मतलब है कि इसका दायरा वर्ग के लिए सार्वजनिक है। सरल शब्दों में var ~ जनता

var $a;
public

0

यहाँ और अब चर घोषणा के लिए 2018उपयोग में varके publicरूप में पर्याय बन गया है

class Sample{
    var $usingVar;
    public $usingPublic;

    function .....

}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.