2016-03-29 4 views
0

Я пытаюсь вручную изменить массив в PHP. Массив вводится через форму, взорван и затем отменяется. Я могу заставить код работать без классов, но в настоящее время меня изучают классы, поэтому я пытаюсь сделать свой текущий код работающим с классами.

<?php 
class reverseArray{ 

public function setSting(){ 
     $string = $_POST['numberInput']; 
     return $string; 

    } 

public function explodeString(){ 
    $array = explode(' ', $string); 
    return $array; 
} 

public function setArray(){ 
    $arrayToEcho = explodeString(); 
    return $arrayToEcho; 
} 


public function returnArray(){ 
    for ($i = count($arrayToEcho) - 1; $i >=0 ; $i--){ 
     echo " "; 
     $arrayToEcho[$i] = $arrayToEcho[$i]; 
     echo $arrayToEcho[$i]; 
    } 
} 
} 
?> 

Я все еще очень уверен, если классы PHP и как вызвать на возвраты и т.д., так что если кто-то может мне точку в правильном направлении? В настоящее время я не получаю никаких ошибок или предупреждений, но также нет вывода!

+0

как '$ string' входит в функцию \ method' explodeString'? –

+0

Либо они не делают хорошую работу по изучению классов, или вы не слушаете, так как вам не хватает базового принципа о них. – Barmar

+0

Не забывайте о встроенной функции 'rsort()' для обращения к массиву. Более подробную информацию можно найти по адресу: http://php.net/manual/en/function.rsort.php. –

ответ

1

Подсветка переменных областей поможет вам. Вам нужно свойство класса, чтобы использовать его в других методах или функциях. Прямо сейчас, $string доступен только внутри функции, в которой она определена. Вы можете объявить свойство класса и использовать аксессуар $this.

class reverseArray{ 

    public $string; 

    public function setString(){ 
     $this->string = $_POST['numberInput']; 
     return $this->string; 
    } 

    public function explodeString(){ 
     $array = explode(' ', $this->string); 
     return $array; 
    } 

} 

Я думаю, что лучше использование для этого класса будет

public function setString($str){ 
     $this->string = $str; 
    } 

Это позволило бы этот класс будет использоваться повторно, как вы можете использовать любую строку внутри класса, а не только $_POST['numberInput']

+0

.. не забудьте вызвать класс и setString (или переместить это в конструктор) .sting vs string также :-) –

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