2011-07-04 10 views
7

कोड के बाहर बदल सकते हैं यह बेहतर बताते हैं:साझा चर कि मैं कक्षा

class Class{ 
    $var = 0; 

    function getvar() 
    echo $this->var; 
    } 

} 



$inst1 = new Class(); 

// I want to change $var here to 5 

$inst2 = new Class(); 

echo $inst2->getvar(); // should be 5 

यह संभव

उत्तर

14

स्थिर है। http://php.net/manual/en/language.oop5.static.php

class MyClass { 
    public static $var = 0; 

    function setVar($value) { 
     self::$var = $value; 
    } 

    function getVar() { 
     return self::$var; 
    } 
} 

echo MyClass::$var; 
MyClass::setVar(1); 
echo MyClass::getVar(); //Outputs 1 
+0

धन्यवाद, कि वास्तव में मदद की। – Dewan159

2

आप $var घोषित static होने के लिए चाहिए:

कि आमतौर पर एक वर्ग की सभी वस्तुओं के लिए उपलब्ध है एक डाटा सदस्य एक स्थिर सदस्य कहा जाता है। नियमित डेटा सदस्यों के विपरीत, स्थिर सदस्य मेमोरी स्पेस को की सभी ऑब्जेक्ट्स के बीच साझा करते हैं।

5

आपको स्थिर सदस्य चर का उपयोग करके ऐसा करने में सक्षम होना चाहिए।

class foo { 
    private static $var; 

    public static setVar($value) { 
    self::$var = $value; 
    } 

    public static getVar() { 
    return self::$var; 
    } 
} 

$a = new foo; 
$a::setVar('bar'); 

$b = new foo; 
echo $b::getVar(); 
// should echo 'bar'; 
1

आप स्थैतिक चर का उपयोग कर सकते हैं:

class AAA{ 
    public static $var = 0; 

    function getvar() { 
    return AAA::$var; 
    } 

} 

AAA::$var = "test"; 

$a1 = new AAA(); 
var_dump($a1->getvar()); 
var_dump(AAA::$var); 
संबंधित मुद्दे