2015-09-08 2 views
0

У меня есть массив:Как вернуть длину массива в методе класса в php?

$data = array("a", "b", "c"); 

Я пытаюсь напечатать длину этого массива (3) в методе класса

class MyString { 
    public $myChars; 
    public $length; 

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

    function length() { 
     $length = count($this->myChars); 
     return $length; 
    } 

Calling его от:

$mystring = new MyString($data); 

Но это не работает ...

+1

Это потому, что вы только назвали конструктор, а не 'длину()' метод – RiggsFolly

+0

Не нужно просто затем вызовите '$ count = $ mystring-> length()' или подобное? Что именно не работает? Что вы ожидаете, и что вы на самом деле получаете. –

+0

Я бы посоветовал вам прочитать [PHP: Классы и объекты] (http://php.net/manual/en/language.oop5.php) –

ответ

3
$mystring = new MyString($data); 
print $mystring->length(); 
+1

Хотя этот ответ позволяет * решить * проблему, я бы посоветовал вам предоставить больше информации для руководства OP и будущих читателей. –

+0

Спасибо! Я отвечу на этот ответ через 5 минут, когда это позволит мне :) – user1589375

0

Некоторые изменения в классе:

class MyString { 
    public $myChars; 
    public $length; 

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

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

Использование так:

$mystring = new MyString($data); 
print $mystring->length(); 
+0

Любая причина, по которой я должен использовать публичные функции? Просто любопытно :) – user1589375

+0

public указать функцию можно получить из другого скрипта, если вы используете private, вы можете использовать функцию только в классе;) см .: http://php.net/manual/en/language.oop5.visibility .php – Fky

+0

Ah yes :) thanks – user1589375

Смежные вопросы