簡體   English   中英

在類中定義變量

[英]Defining variable in a class

我是PHP的$firstDect即使定義了它,我也會得到未定義的變量$firstDect

class Deck
{
    public function getdeck()
    {
        $firstDeck = new Deck();
        return $this->firstDeck;
    }
}

和,

<div class="panel-body">
    <?php foreach ($firstDeck->getDeck() as $card): ?>
        <img class="col-md-3" src="<?php echo $card->getImage(); ?>">
    <?php endforeach; ?>
</div>
class Deck
{
   /* You have to define variable something like below before 
      accessing $this->firstDeck 
   */
   public $firstDeck;


   public function getdeck()
   {
       $this->firstDeck = new Deck();
       return $this->firstDeck;
   }
}

這里閱讀更多

使用以下類:

class Deck
    {
        public $firstDeck;
        public function getdeck()
        {
            $this->firstDeck = new Deck();
            return $this->firstDeck;
        }
    }

您已經在函數本身中定義了變量。

 public function getdeck()
        {
            $firstDeck = new Deck();
            return $this->firstDeck;
        }

您不能將$this與在函數內部聲明的變量一起使用, $this用於引用在類級別聲明的變量。 您可以這樣重寫函數,

 public function getdeck()
        {
            $firstDeck = new Deck();
            return $firstDeck;
        }

要么

您可以像這樣在類級別定義變量,

class Deck
    {
        private $firstDeck;
        public function getdeck()
        {
            $this->firstDeck = new Deck();
            return $this->firstDeck;
        }
    }

保留字$this是對您當前所在類的對象的引用。因此$this->firstDeck表示您有一個名為$firstDeck的類成員,而您沒有。

您可以在班級中將其聲明為成員

class Deck
{
    private $firstDeck;
    public getdeck() { ... }
}

或者你只是寫

public getdeck() 
{
    $firstdeck = new Deck();
    return $firstdeck;
}

您遇到錯誤,請使用此命令:

    public function getdeck()
    {
        $firstDeck = new Deck();
        return $firstDeck ->firstDeck;
    }

$這與自類有關。

很多事情是錯誤的。

您正在嘗試使用在函數內部定義的變量。

我認為您正在嘗試做的是:

class Deck{
    public function getDeck(){
        return array(card1, card2...);
    }
}

$firstDeck = new Deck();

這就留下了一些不確定的問題,關於什么是卡片或其他超出問題范圍的東西。

另一方面,我使用了一個數組來確保getDeck方法的輸出是可迭代的,但是我認為有多種方法可以使您的類本身可迭代,您只需要在文檔中查找即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM