Първото ми изобретение на ООП - Калкулатор за събиране

MaLa_NocHe

Registered
PHP:
<form action="" method="post">
Число<input type="text" name="chisloOne" /> + Число<input type="text" name="chisloTwo" /><br />
<input type="submit" name="submit" value="Сметни" />
</form>
<?php
class MathCalc{ //Създаваме клас
	private $pyrva; 
	private $vtora;
	private $result;
	public function chisloOne($paramOne){ //Създаваме метод/функция
		$this->pyrva = $paramOne; //Задаваме на променливата "pyrva" стойността от параметъра "paramOne"
	}
	public function chisloTwo($paramTwo){ //Създаваме метод/функция
		$this->vtora = $paramTwo; //Задаваме на променливата "vtora" стойността от параметъра "paramTwo"
	}
	public function chisloReshenie(){ //Създаваме метод/функция
		echo $this->result = $this->pyrva + $this->vtora; 
	}
}
if(isset($_POST['submit']))
{
$chisloOne = htmlspecialchars($_POST['chisloOne']); //Присвояваме стойностите от полето с име "chisloOne"
$chisloTwo = htmlspecialchars($_POST['chisloTwo']); //Присвояваме стойностите от полето с име "chisloTwo"
if($chisloOne == NULL || $chisloTwo == NULL) //Проверка за въведен текст
{
echo "Не сте въвели число!";//Извеждаме ако няма въведено нищо на едно или и на двете полета
}else{
$obekt = new MathCalc();
	$obekt->chisloOne($chisloOne); //Задаваме стойностите на първото число
	$obekt->chisloTwo($chisloTwo); //Задаваме стойностите на второто число
		$obekt->chisloReshenie(); //Извеждаме резултата
	}
}
?>

Надявам се да съм бил полезен, и скоро ще направя за изваждане, умножение и делене. Но това и вие може да го направите, след като промените симбола в този ред:

echo $this->result = $this->pyrva + $this->vtora;
 
Не е зле ;)
Ето ти го и с 4 функций:

PHP:
<form action="" method="post">
Число 1: <input type="text" name="chisloOne" /> 
Действие: <select name="metod" />
<option value="+" />Събиране</option>
<option value="-" />Изваждане</option>
<option value="*" />Умножение</option>
<option value="/" />Деление</option>
</select> 
Число 2: <input type="text" name="chisloTwo" /><br />
<input type="submit" name="submit" value="Сметни" />
</form>
<?php
class MathCalc{ //Създаваме клас
        private $pyrva; 
        private $vtora;
		private $metod;
        private $result;
        public function chisloOne($paramOne){ //Създаваме метод/функция
                $this->pyrva = $paramOne; //Задаваме на променливата "pyrva" стойността от параметъра "paramOne"
        }
        public function chisloTwo($paramTwo){ //Създаваме метод/функция
                $this->vtora = $paramTwo; //Задаваме на променливата "vtora" стойността от параметъра "paramTwo"
        }
		public function getmetod($paramThree){ //Създаваме метод/функция
                $this->metod = $paramThree; //Задаваме на променливата "metod" стойността от параметъра "paramThree"
        }
        public function chisloReshenie(){ //Създаваме метод/функция
		if ($this->metod == "+")
		{
        echo $this->result = $this->pyrva + $this->vtora; 
		}
		elseif ($this->metod == "-")
		{
		echo $this->result = $this->pyrva - $this->vtora; 
		}
		elseif ($this->metod == "*")
		{
		echo $this->result = $this->pyrva * $this->vtora; 
		}
		else
		{
		echo $this->result = $this->pyrva / $this->vtora; 
		}
        }
}
if(isset($_POST['submit']))
{
$chisloOne = htmlspecialchars($_POST['chisloOne']); //Присвояваме стойностите от полето с име "chisloOne"
$chisloTwo = htmlspecialchars($_POST['chisloTwo']); //Присвояваме стойностите от полето с име "chisloTwo"
$deistvie = htmlspecialchars($_POST['metod']); // Присвояваме стойноста от полето с име "metod"
if($chisloOne == NULL || $chisloTwo == NULL) //Проверка за въведен текст
{
echo "Не сте въвели число!";//Извеждаме ако няма въведено нищо на едно или и на двете полета
}else{
$obekt = new MathCalc();
        $obekt->chisloOne($chisloOne); //Задаваме стойностите на първото число
        $obekt->chisloTwo($chisloTwo); //Задаваме стойностите на второто число
        $obekt->getmetod($deistvie); //Задаваме стойноста на действието
                $obekt->chisloReshenie(); //Извеждаме резултата
        }
}
?>
 
Дали ще има възможност да направим, коренуване, смисъл пишеш числото 9 и като избереш коренуване, да стане числото 3?
 
Продължавай в същият дух. Може за сега да е нещо малко и просто като калкулатор, но винаги така се почва. Надявам се скоро да можеш да споделиш някое по-голямо приложение направено на ООП.
 
qazxsw каза:
Продължавай в същият дух. Може за сега да е нещо малко и просто като калкулатор, но винаги така се почва. Надявам се скоро да можеш да споделиш някое по-голямо приложение направено на ООП.

Дано, стискайте ми палци, от днес започнах усилено учене и гледане на уроци за ООП :P, сега ще видя тоя линк дето е дал колегата по-горе.
 
@Replace, благодаря за добрата функция. Ето и резултата от нея:

PHP:
<form action="" method="post">
Число: <input type="text" name="chisloOne" /> 
Действие: <select name="metod" />
<option value="cor" />Корен</option>
</select> 
<input type="submit" name="submit" value="Сметни" />
</form>
<?php
class MathCalc{ //Създаваме клас
        private $pyrva; 
                private $metod;
        private $result;
        public function chisloOne($paramOne){ //Създаваме метод/функция
                $this->pyrva = $paramOne; //Задаваме на променливата "pyrva" стойността от параметъра "paramOne"
        }
                public function getmetod($paramThree){ //Създаваме метод/функция
                $this->metod = $paramThree; //Задаваме на променливата "metod" стойността от параметъра "paramThree"
        }
        public function chisloReshenie(){ //Създаваме метод/функция
                if ($this->metod == "cor")
                {
				echo $this->result = sqrt($this->pyrva); 
                }
        }
}
if(isset($_POST['submit']))
{
$chisloOne = htmlspecialchars($_POST['chisloOne']); //Присвояваме стойностите от полето с име "chisloOne"
$deistvie = htmlspecialchars($_POST['metod']); // Присвояваме стойноста от полето с име "metod"
if($chisloOne == NULL) //Проверка за въведен текст
{
echo "Не сте въвели число!";//Извеждаме ако няма въведено нищо на едно или и на двете полета
}else{
$obekt = new MathCalc();
        $obekt->chisloOne($chisloOne); //Задаваме стойностите на първото число
        $obekt->getmetod($deistvie); //Задаваме стойноста на действието
                $obekt->chisloReshenie(); //Извеждаме резултата
        }
}
?>
 
Добре е за пръв ден, но гледай за нататък да правиш сичко във функции и да ползваш ретърни, по-удобно е и по-голям контрол имаш, зависи как го направиш разбира се.
 
За ретърн съм прав, но какъв е смисъла, всичко да е във ф-ии? Имаш предвид и пхп кода, за субмитнат бутон, и хтмл кода за форамта ли?
 
Не само действията с пхп не ХТМЛ , някои проверки можеш да ги вкарваш в функции например, гледаш максималко да си улесниш работата за по нататък в кода.
 

Back
Горе