bscyb Δημοσ. 5 Ιουλίου 2011 Δημοσ. 5 Ιουλίου 2011 Μίας και άρχισα να μαθαίνω PHP είπα να εξασκηθώ λίγο και στο αντικειμενοστράφη κώδικα αν και ξέρω πως στην PHP δεν πολυχρησιμοποιείτε έφτιαξα αυτό εδω το script: > <?php class baseCalc { var $num1=13; var $num2=5; function calculate() { echo "1st Number is " .$this->num1. " and 2nd Number is " .$this->num2; } } class addCalc extends baseCalc { function calculate() { $result=$num1+$num2; echo "$this->num1 + $this->num2 = $result"; } } class subCalc extends baseCalc { function calculate() { $result=$num1-$num2; echo "$this->num1 - $this->num2 = $result"; } } class mulCalc extends baseCalc { function calculate() { $result=$num1*$num2; echo "$this->num1 X $this->num2 = $result"; } } class divCalc extends baseCalc { function calculate() { $result=$num1/$num2; echo "$this->num1 / $this->num2 = $result"; } } $test=new addCalc(); $test -> calculate(); ?> άλλα αυτό εκτυπώνει: 13+5=0 και όχι 13+5=18 όπως θα ηταν το σωστό
macabre_sunsets Δημοσ. 5 Ιουλίου 2011 Δημοσ. 5 Ιουλίου 2011 $result=$num1+$num2;echo "$this->num1 + $this->num2 = $result";
defacer Δημοσ. 5 Ιουλίου 2011 Δημοσ. 5 Ιουλίου 2011 Μια χαρά χρησιμοποιείται το OO στην PHP (βασικά δεν υπάρχει περίπτωση να κάνεις σοβαρή δουλειά χωρίς). Στη δική σου περίπτωση κάτι ξέχασες κατά τον υπολογισμό του $result, όπως αν κατάλαβα καλά θέλει να πει και ο macabre_sunsets. Μιας και δεν το πήρε το ποτάμι ήδη, ακολουθώ το ρεύμα και δεν στο δίνω στο πιάτο. Hint: >error_reporting(E_ALL); ...κι αφήστε τον compiler να σας πει τι πήγε στραβά.
bscyb Δημοσ. 5 Ιουλίου 2011 Μέλος Δημοσ. 5 Ιουλίου 2011 σωστά ξέχασα να βάλω το this στον υπολογισμό του result
Maniakos Δημοσ. 6 Ιουλίου 2011 Δημοσ. 6 Ιουλίου 2011 Στις κλάσεις σου (και στα class variables) να βάζεις και το visibility που έχουνε προς τον έξω κόσμο, δηλαδή private, protected ή public γιατί έτσι όπως το έχεις γράψει είναι php 4 style το οποίο πρέπει να αποφύγεις. Διάβασε όλο το chapter: http://www.php.net/manual/en/language.oop5.php
The King Δημοσ. 30 Ιουλίου 2012 Δημοσ. 30 Ιουλίου 2012 (επεξεργασμένο) έτσι πρέπει να είναι φυσικά όπως σου προείπε ο Maniakos, χρειάζεται περαιτέρω βελτίωση ο κώδικας σου! > <?php class baseCalc { var $num1=13; var $num2=5; function calculate() { echo "1st Number is " .$this->num1. " and 2nd Number is " .$this->num2; } } class addCalc extends baseCalc { function calculate() { $result= $this->num1 + $this->num2; echo "$this->num1 + $this->num2 = $result"; } } class subCalc extends baseCalc { function calculate() { $result=$this->num1 - $this->num2; echo "$this->num1 - $this->num2 = $result"; } } class mulCalc extends baseCalc { function calculate() { $result=$this->num1 * $this->num2; echo "$this->num1 X $this->num2 = $result"; } } class divCalc extends baseCalc { function calculate() { $result=$this->num1 / $this->num2; echo "$this->num1 / $this->num2 = $result"; } } $test = new baseCalc(); $test -> calculate(); echo "<hr>"; $test = new addCalc(); $test -> calculate(); echo "<br/>"; $test = new subCalc(); $test -> calculate(); echo "<br/>"; $test = new mulCalc(); $test -> calculate(); echo "<br/>"; $test = new divCalc(); $test -> calculate(); echo "<br/>"; ?> Επεξ/σία 30 Ιουλίου 2012 από The King
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα