2017-07-25 67 views
1

我是新来的面向对象编程在PHP中。 我用数组属性做了一个简单的订单类。 orderLength方法不起作用。我得到一个错误。在php中获取数组长度

调用未定义的方法令::计数()

PHP:

<?php  
    class Order { 
     private $order = array(); 

     public function setOrder($wert) { 
      foreach($wert as $value) { 
       $this -> order[] = $value; 
      } 
     } 

     public function orderLength() { 
      $length = $this -> count(order); 
      return $length; 
     } 

     public function returnOrder() { 
      $value = $this -> order; 
      return $value; 
     } 
    } 

    $order = new Order; 
    $order -> setOrder(array('Book1','Book2','Book3','Book4')); 

    foreach($order->returnOrder() as $value) { 
     echo $value."<br>"; 
    } 

    echo "The order Length is: ".$order->orderLength(); 
+0

http://php.net/manual/en/class.countable.php – Scuzzy

+4

没有'count'方法 – ArtOsi

回答

0

相反的$this->count(order)你可以尝试用:

$length = count($this->order); 
0

计数是一种方法,而不是一个类属性,试试这个:

$length = count($this->order); 
3

只需返回$订单的计数:

public function orderLength() { 
     return count($this->order); 
    } 
0

只是你miske该行

$this -> count(order); 

你的类有作为计数,以便去除任何一个成员函数:

this -> 
0

您尚未为班级定义方法计数。你已经做到了这一点,看起来你正在调用你的班级的count方法,并将order作为参数。

$length=count($this->order); 
0

将值赋予变量顺序,然后编写获取计数的代码。

$order = $order -> setOrder(array('Book1','Book2','Book3','Book4')); 
echo "The order Length is: ".$order->orderLength();