2009-08-18 15 views
8

मैं है कोड निम्नलिखित (मैं एक डॉट नेट डेवलपर्स कर रहा हूँ और मैंने सोचा कि अगर मैं PHP के लिए मेरी OOP ज्ञान ला सकता है)पीएचपी चर

class user { 
    var $_un; 
    function user($un) { 
    $_un = $un; 
    } 
    function adduser() { 
    } 
    function checkuser() { 
    } 
    function printuser() { 
     echo $_un; 
    } 
} 

$newuser = new user('Omar Abid'); 
$newuser->printuser(); 

तो समस्या सरल "$ _un" है खाली !! मैं इसे भरना चाहता हूं, जब कक्षा को कन्स्ट्रक्टर का उपयोग करके बनाया जाता है और फिर सहेजा जाता है।

मैं इसे सी # नेट में करता था, लेकिन यहां यह कुछ कारणों से काम नहीं करता है। धन्यवाद!

उत्तर

7

PHP में कक्षा सदस्यों तक पहुंचने के लिए आपको $this-> का उपयोग करने की आवश्यकता है।

तो आप वर्तमान में जो कर रहे हैं वह स्थानीय चर घोषित कर रहा है जिसे सदस्य चर $this->_un असाइन करने के बजाय $_un कहा जाता है।

करने के लिए अपने कोड को बदलने का प्रयास करें:

function user($un) { 
$this->_un = $un; 
} 

function printuser() { 
    echo $this->_un; 
} 

और यह काम करना चाहिए।

+0

अन्य कार्य करना चाहिए भी \t समारोह printuser() { \t \t गूंज में परिवर्तन करने के लिए दृश्यता को जोड़ने के लिए पर विचार $ इस -> _ संयुक्त राष्ट्र; \t} धन्यवाद यह अब सही ढंग से काम कर रहा है –

+0

हाँ, खेद मैं 'याद printuser()', मेरा उत्तर –

2

का उपयोग करें निर्माण।

class user {  
    var $_un;  
    function user($un) 
    { 
     $this->_un = $un;  
    } 
} 
php आप वर्तमान वर्ग के चर (या विधि) का उपयोग करने की $this का उपयोग करना पड़ में
9

बजाय उपयोगकर्ता() आप __construct का उपयोग करना चाहिए से वर्ग के सदस्यों को अलग करने के (आवश्यक है), यह PHP5 में एक कन्स्ट्रक्टर जोड़ने का पसंदीदा तरीका है। इसके अलावा अपने तरीकों और सदस्य (सार्वजनिक/संरक्षित/निजी)

public function __construct($un) { 
    $this->_un = $un; 
} 
+0

तय यह सही जवाब है ... – tekknolagi

+0

आप उदाहरण के लिए 20 चर है, तो आप उन्हें के रूप में सूचीबद्ध करने के लिए होता है __construct (var1, var2, आदि) में तर्क? – AlxVallejo

संबंधित मुद्दे