2017-02-19 5 views
0

Вывод кода «Я поеду в Лос-Анджелес. Путешествие будет расстоянием 300 миль. Нам нужно сделать 2 остановки». когда он должен вытягивать множественное число или единственное слово «стоп» в зависимости от числа, определенного в моей инструкции IF (в этом случае это должно быть множественное число). Я предполагаю, что IF работает не так, как я ожидал, из-за того, как я построил класс. Любая помощь в его исправлении будет оценена по достоинству.Оператор IF не правильно решает

class trip { 

    public $destination; 
    public $distance; 
    public $unit; 
    public $stops = null; 
    public $transport = null; 

    function __construct($destination, $distance, $unit, $stops, $transport) { 
    $this->destination = $destination; 
    $this->distance = $distance; 
    $this->unit = $unit; 
    $this->stops = $stops; 
    $this->transport = $transport; 
    } 

    function getTrip() { 
    $a = "I will be going to " . $this->destination . ". "; 
    $a .= "The journey will be a distance of " . $this->distance . " " . $this->unit . ". "; 
    $a .= "We will need to make " . $this->stops; 
    if ($this->stops = 1) { 
     $a .= " stop."; 
    } else { 
     $a .= " stops."; 
    } 
    $a .= "\n"; 
    echo $a; 
    } 
} 

$first = new trip('Los Angeles',300,'miles',2,'airplane'); 
$first->getTrip(); 
+0

Различные вопросы, которые имеют один и тот же ответ, не дублируются. Ненужная умеренность ради подсчета нескольких дополнительных очков наносит ущерб продукту Stackoverflow. – Andy

ответ

5

Вы, кажется, упустили небольшую деталь.

if ($this->stops = 1) 

должен быть

if ($this->stops == 1) 
+0

D'oh, это глупая ошибка с моей стороны ... спасибо. ;) – Andy

2

ваш IF заявление кажется неправильным. На самом деле, это должно быть:

if($this->stops == 1){ ...

Вы должны использовать два == знаки, чтобы сделать сравнение, в противном случае это назначение. Поэтому в вашем случае знак one = не будет проверять ожидаемое вами условие.