Showing posts with label oop. Show all posts
Showing posts with label oop. Show all posts

Wednesday, September 9, 2015

Reverse Polish notation Calculator using stack (for better understanding oop concept)

<?php

class Stack {
    public $array = array();
    public $index = -1;

    public function isEmpty()
    {
        if($this->index == -1){
            return true;
        }else{
            return false;
        }
    }
    public function push($element)
    {
        $this->index++;
        $this->array[$this->index] = $element;
    }

    public function pop()
    {
        //return $this->array[$this->index--];
        if($this->isEmpty()){
           echo 'Nothing to pop';
        }else{
            $element = $this->array[$this->index];
            unset($this->array[$this->index]);
            $this->index--;
            return $element;

        }

    }
    public function calculator($value1, $value2, $operator){
        if($operator == "+"){
            $result = $value1 + $value2;
        } elseif($operator == "-"){
            $result = $value1 - $value2;
        } elseif($operator == "*"){
            $result = $value1 * $value2;
        } elseif($operator == "/"){
            $result = $value1 / $value2;
        }

        return $result;
    }

}
$stack = new Stack();
if(isset($_POST['numbers'])){
    $numbers = trim($_POST['numbers']);
    $numbers = explode(' ', $numbers);
    foreach ($numbers as $number) {
       if(is_numeric($number)) {
           $number = intval($number);
           $stack->push($number);
       }else{
           $value2 = $stack->pop();
           $value1 = $stack->pop();
           $result = $stack->calculator($value1, $value2, $number);
           $stack->push($result);
       }
    }
$result = $stack->pop();
    echo $result;
}
?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<form method="post" action="">
    <input type="text" name="numbers" id="">
    <input type="submit" name="submit" id="">
</form>
</body>
</html>

Monday, September 7, 2015

object oriented programming in php :: inheritance

<?php

function is_phone_number($number){
    $length = strlen($number);
    if($length == 11){

        for ($i=0; $i < $length; $i++) {
            if(ord( $number[$i]) < ord('0') ||  ord( $number[$i]) > ord('9')){
                return false;
            }
        }
        return true;
    }
    return false;
}

class Person {
    public $name;
    public $profession;
    public $phone_number;
    public function check_phone_number($phone_number){
        if(is_phone_number($phone_number)){
            $this->phone_number = $phone_number;
        }
    }
}

class Guest extends Person{
    public $indian_phone_number;
    public function check_indian_phone_number($phone_number){
        if(is_phone_number($phone_number . '0')){
            $this->indian_phone_number = $phone_number;
        }
    }
}

//$indian = new Guest();
//$indian->name = 'Daniel';
//$indian->profession = "Soft skill trainer";
//$indian->check_phone_number('01670978989');
//$indian->check_indian_phone_number('0123456789');
//print_r($indian);
$indian2 = new Guest();
$indian2->name = 'Vasanth';
$indian2->profession = 'Trainer';
$indian2->check_phone_number('01670978989');
$indian2->check_indian_phone_number('8008900910');
print_r($indian2);

Basic object oriented programming in php

<?php

function is_phone_number($number){
$length = strlen($number);
if($length == 11){

for ($i=0; $i < $length; $i++) { 
if(ord( $number[$i]) < ord('0') ||  ord( $number[$i]) > ord('9')){
return false;
}
}
return true;
}
return false;


class Person {
public $name;
public $profession;
public $phone_number;
public function check_phone_number($phone_number){
if(is_phone_number($phone_number)){
$this->phone_number = $phone_number;
}
}
}

$polo = new Person();
$polo->name = 'Polo dev';
$polo->profession = 'Student';
$polo->check_phone_number('01670978989');

echo $polo->name . '<br>'; 
echo $polo->profession . '<br>'; 
echo $polo->phone_number . '<br>'; 

css snippet for blogger code highlighting

code, .code {     display: block;     background: beige;     padding: 10px;     margin: 8px 15px; }