public function __construct($etumerkki, $arvo) { // Tarkistetaan, että syöte on oikean muotoinen (vähintään // yksinumeroinen luku) if (preg_match('/^\\d+$/', $arvo) == 1) { $this->arvo = $arvo; parent::set_etumerkki($etumerkki); } else { parent::set_etumerkki("+"); } }
public function __construct($etumerkki, $kok_osa, $os, $nim) { $this->murto_osa = new Murtoluku($etumerkki, $os, $nim); parent::set_etumerkki($etumerkki); // Tarkistetaan, että syöte $kok_osa on positiivinen kokonaisluku. if (preg_match('/^\\d+$/', $kok_osa) == 1) { $this->kokonaisosa = $kok_osa; // Aina positiivinen! } else { $this->kokonaisosa = 0; } }
public function __construct($etumerkki, $os, $nim) { parent::set_etumerkki($etumerkki); //Alustava (tarkistetaan samalla) // Tarkistetaan, että syötteet oikean muotoisia (kokonaislukuja ja // nimittäjä ei saa olla nolla). Osoittajan ja nimittäjän täytyy olla // samaa tyyppiä. if (is_object($os) && is_object($nim)) { if (get_class($os) == 'Kokonaisluku' && get_class($nim) == 'Kokonaisluku' && $nim->get_arvo() != 0) { $this->osoittaja = $os->get_arvo(); // Aina positiivinen! $this->nimittaja = $nim->get_arvo(); // Aina positiivinen! // Asetetaan etumerkki oikein, koska sekä osoittaja että // nimittäjä voivat olla negatiivisia lukuja. $miinusten_lkm = 0; // Apumuuttuja. $etumerkit_taulukossa = array($os->get_etumerkki(), $nim->get_etumerkki(), $this->get_etumerkki()); for ($i = 0; $i < sizeof($etumerkit_taulukossa); $i++) { if ($etumerkit_taulukossa[$i] == $os->get_miinusmerkki()) { $miinusten_lkm++; } } if ($miinusten_lkm == 0 || $miinusten_lkm == 2) { parent::set_etumerkki('+'); } else { parent::set_etumerkki('-'); } } } else { if (is_string($nim) && is_string($os) || is_int($nim) && is_int($os) || is_numeric($nim) && is_numeric($os)) { // Hyväksytään myös syötteinä myös pelkät kokonaisluvut. Tosin // tässä vaiheessa vain etumerkittömät: if ($this->on_etumerkiton_kokonaisluku($os) && $this->on_etumerkiton_kokonaisluku($nim) && $nim != 0) { $this->osoittaja = $os; $this->nimittaja = $nim; parent::set_etumerkki($etumerkki); } else { $this->osoittaja = 0; $this->nimittaja = 1; parent::set_etumerkki($etumerkki); } } else { $this->osoittaja = 0; $this->nimittaja = 1; parent::set_etumerkki($etumerkki); } } }