在类中定义变量

时间:2017-07-25 10:10:14

标签: php

我是PHP的新手,即使定义了未定义的变量$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>

6 个答案:

答案 0 :(得分:1)

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;
   }
}

Here

了解详情

答案 1 :(得分:1)

使用以下课程:

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

答案 2 :(得分:1)

你已经在函数中定义了变量。

 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;
        }
    }

答案 3 :(得分:0)

保留字$this是对您当前所在类对象的引用。因此$this->firstDeck表示您有一个名为$firstDeck的类成员,您可以使用没有。

您要么在班级中将其声明为会员

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

或者你只是写

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

答案 4 :(得分:-1)

您有错误,请使用:

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

$这与自我类有关。

答案 5 :(得分:-1)

很多事情都错了。

您正在尝试使用函数内定义的变量。

我认为你要做的是:

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

$firstDeck = new Deck();

这留下了一些关于卡片或其他内容不明确的问题。

另一方面,我使用一个数组来确保getDeck方法的输出是可迭代的,但我认为有一些方法可以让你的类本身可迭代,你只需要查找文档。