सवाल PHP में परिवर्तनीय $ इसका क्या अर्थ है?


मैं चर देखता हूँ $this PHP में हर समय और मुझे नहीं पता कि इसका क्या उपयोग किया जाता है। मैंने कभी व्यक्तिगत रूप से इसका उपयोग नहीं किया है, और खोज इंजन अनदेखा करते हैं $ और मैं "इस" शब्द की खोज के साथ समाप्त होता हूं।

क्या कोई मुझे बता सकता है कि चर $ यह PHP में कैसे काम करता है?


76
2017-10-06 03:45


मूल




जवाब:


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

उदाहरण:

<?php
class Person {
    public $name;

    function __construct( $name ) {
        $this->name = $name;
    }
};

$jack = new Person('Jack');
echo $jack->name;

यह 'जैक' स्ट्रिंग को बनाए गए ऑब्जेक्ट की संपत्ति के रूप में संग्रहीत करता है।


101
2017-10-06 03:46



शब्दावली "वर्तमान वस्तु" के लिए +1, क्योंकि यह कभी-कभी अनजान व्यवहार का वर्णन करने का एक और सटीक तरीका है $this। - Alex Barrett
KillerPHP OOP ट्यूटोरियल में समान उदाहरण कोड देखा :) killerphp.com/tutorials/php-objects-page-1 - Edson


के बारे में जानने का सबसे अच्छा तरीका है $this php में परिवर्तनीय PHP से पूछना है कि यह क्या है। हमसे मत पूछो, कंपाइलर से पूछें:

print gettype($this);            //object
print get_object_vars($this);    //Array
print is_array($this);           //false
print is_object($this);          //true
print_r($this);                  //dump of the objects inside it
print count($this);              //true
print get_class($this);          //YourProject\YourFile\YourClass
print isset($this);              //true
print get_parent_class($this);   //YourBundle\YourStuff\YourParentClass
print gettype($this->container); //object

28
2017-12-11 18:23



आप कुछ अर्धविराम भूल गए: डी - smileBeda


मैं इसके पुराने सवाल को जानता हूं, वैसे भी एक और सटीक स्पष्टीकरण इस $इस $ मुख्य रूप से एक वर्ग के गुणों को संदर्भित करने के लिए प्रयोग किया जाता है।

उदाहरण:

Class A
{
   public $myname;    //this is a member variable of this class

function callme() {
    $myname = 'function variable';
    $this->myname = 'Member variable';
    echo $myname;                  //prints function variable
    echo $this->myname;              //prints member variable
   }
}

उत्पादन:

function variable

member variable

11
2018-02-24 06:41





यह एक वर्ग के एक उदाहरण को अपने भीतर से संदर्भित करने का तरीका है, जैसा कि कई अन्य ऑब्जेक्ट उन्मुख भाषाओं के समान है।

वहाँ से PHP दस्तावेज़:

छद्म-परिवर्तनीय $ यह उपलब्ध है   जब एक विधि के भीतर से कहा जाता है   वस्तु संदर्भ। $ यह एक संदर्भ है   कॉलिंग ऑब्जेक्ट (आमतौर पर   ऑब्जेक्ट जिस पर विधि संबंधित है,   लेकिन संभवतः एक और वस्तु, अगर   विधि को स्थिर रूप से कहा जाता है   द्वितीयक वस्तु का संदर्भ)।


8
2017-10-06 03:47





चलो देखते हैं कि क्या होता है अगर हम इसका उपयोग नहीं करेंगे और इंस्टेंस चर के लिए प्रयास करेंगे और निम्नलिखित कोड स्निपेट के साथ एक ही नाम के साथ कन्स्ट्रक्टर तर्क

<?php

class Student {
    public $name;

    function __construct( $name ) {
        $name = $name;
    }
};

$tom = new Student('Tom');
echo $tom->name;

?>

यह कुछ भी नहीं है

<?php

class Student {
    public $name;

    function __construct( $name ) {
        $this->name = $name; // Using 'this' to access the student's name
    }
};

$tom = new Student('Tom');
echo $tom->name;

?>

यह इको 'टॉम'


6
2018-06-19 14:59



आपके कोड स्निपेट बिल्कुल वही हैं, या क्या मुझे कुछ याद आ रहा है? - Demento
@ डिमेंटो: हाँ। मैंने इसे इस्तेमाल करके तय किया $thisदूसरे कन्स्ट्रक्टर में। - Axel Guilmin


जब आप अपनी कक्षा बनाते हैं (कई मामलों में) उदाहरण चर और विधियों (उर्फ फ़ंक्शन)। $ यह उन आवृत्ति चरों तक पहुंचता है ताकि आपके कार्य उन चरों को ले सकें और जो भी आप चाहते हैं उन्हें करने के लिए उन्हें जो भी करना है, वह करें।

मध्यस्थ के उदाहरण का एक और संस्करण:

class Person {

    protected $name;  //can't be accessed from outside the class

    public function __construct($name) {
        $this->name = $name;
    }

    public function getName() {
        return $this->name;
    }
}
// this line creates an instance of the class Person setting "Jack" as $name.  
// __construct() gets executed when you declare it within the class.
$jack = new Person("Jack"); 

echo $jack->getName();

Output:

Jack

2
2017-10-06 14:47





$ यह एक विशेष चर है और यह एक ही वस्तु अर्थात् संदर्भित करता है। अपने आप।

यह वास्तव में वर्तमान वर्ग का उदाहरण देखें

यहां एक उदाहरण है जो उपर्युक्त कथन को साफ़ करेगा

<?php
 class Books {
  /* Member variables */
  var $price;
  var $title;

  /* Member functions */
  function setPrice($par){
     $this->price = $par;
  }

  function getPrice(){
     echo $this->price ."<br/>";
  }

  function setTitle($par){
     $this->title = $par;
  }

  function getTitle(){
     echo $this->title ." <br/>";
  }
}
?> 

2
2018-03-26 07:20



कृपया इसे थोड़ा और विस्तृत करें - Neeraj Rathod


$this है कॉलिंग ऑब्जेक्ट का संदर्भ (आमतौर पर वह ऑब्जेक्ट जिस पर विधि संबंधित है, लेकिन संभवतः एक अन्य वस्तु, यदि विधि को द्वितीयक वस्तु के संदर्भ से स्थिर रूप से कहा जाता है)।


2
2017-10-29 14:18





यह वर्तमान वर्ग के उदाहरण के रूप में संदर्भित करता है मेडर कहा हुआ।

देखें PHP डॉक्स। यह पहले उदाहरण के तहत समझाया गया है।


0
2017-10-06 03:47