Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Μίας και άρχισα να μαθαίνω 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 όπως θα ηταν το σωστό

Δημοσ.

Μια χαρά χρησιμοποιείται το OO στην PHP (βασικά δεν υπάρχει περίπτωση να κάνεις σοβαρή δουλειά χωρίς).

 

Στη δική σου περίπτωση κάτι ξέχασες κατά τον υπολογισμό του $result, όπως αν κατάλαβα καλά θέλει να πει και ο macabre_sunsets. Μιας και δεν το πήρε το ποτάμι ήδη, ακολουθώ το ρεύμα και δεν στο δίνω στο πιάτο.

 

Hint:

 

>error_reporting(E_ALL);

 

...κι αφήστε τον compiler να σας πει τι πήγε στραβά.

Δημοσ.

Στις κλάσεις σου (και στα class variables) να βάζεις και το visibility που έχουνε προς τον έξω κόσμο, δηλαδή private, protected ή public γιατί έτσι όπως το έχεις γράψει είναι php 4 style το οποίο πρέπει να αποφύγεις.

 

Διάβασε όλο το chapter: http://www.php.net/manual/en/language.oop5.php

  • 1 χρόνο αργότερα...
Δημοσ. (επεξεργασμένο)

έτσι πρέπει να είναι :)

φυσικά όπως σου προείπε ο 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/>";
?>

Επεξ/σία από The King

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...