Search
 
SCRIPT & CODE EXAMPLE
 

PHP

overloading and overriding in php

class Shape {
   const Pi = 3.142 ;  // constant value
  function __call($functionname, $argument){
    if($functionname == 'area')
    switch(count($argument)){
        case 0 : return 0 ;
        case 1 : return self::Pi * $argument[0] ; // 3.14 * 5
        case 2 : return $argument[0] * $argument[1];  // 5 * 10
    }

  }

 }
 $circle = new Shape();`enter code here`
 echo "Area of circle:".$circle->area()."</br>"; // display the area of circle Output 0
 echo "Area of circle:".$circle->area(5)."</br>"; // display the area of circle
 $rect = new Shape();
 echo "Area of rectangle:".$rect->area(5,10); // display area of rectangle
Comment

overloading and overriding in php

<?php

class Foo {
   function myFoo() {
      return "Foo";
   }
}

class Bar extends Foo {
   function myFoo() {
      return "Bar";
   }
}

$foo = new Foo;
$bar = new Bar;
echo($foo->myFoo()); //"Foo"
echo($bar->myFoo()); //"Bar"
?>
Comment

php overriding

Overriding
I metodi definiti in una classe padre, possono essere 
sovrascritti (overriding) in una classe figlia 
e, in questo caso, le funzioni ridefinite avranno 
precedenza su quelle della classe padre. 
Questo metodo è utile se si vuole utilizzare 
la funzionalità del genitore o semplicemente aggiungere 
ulteriori funzionalità nel metodo della sottoclasse. 
Per ridefinire un metodo della superclasse in una sottoclasse, 
si crea semplicemente un metodo nella classe figlia 
con lo stesso nome del metodo della classe padre.

<?php
// dichiarazione della classe Person
class Person {
	public $name;
	// costruttore
	function __construct($name) {
		echo "Chiamata costruttore della Superclasse"."<br>";
		// inizializzazione della proprietà $name
		$this->name = $name;
	}
	// metodi
	function viewHello() {
		echo "Hello ".$this->name."<br>";
	}
}
// definizione della sottoclasse Employees
class Employees extends Person {
	public $profile;
	// costruttore della sottoclasse
	function __construct($name, $profile) {
		parent::__construct($name); // chiamo il costruttore di Person
		$this->profile = $profile;  // inizializzo $profile
	}
	// metodi
	function viewHello() {
		parent::viewHello();
		echo "Profile: ".$this->profile."<br>";
	}
}
$customer = new Person("Giuseppe Rossi");
$customer->viewHello();
$employee = new Employees("Mario Rossi", "Admin");
$employee->viewHello();
?>
Come possiamo notare in questo caso, il metodo viewHello 
di Employees va a sovrascrivere quello di Person. 
Praticamente, il metodo viewHello di Employees 
ignora quello di Person.

Per utilizzare l'istanza $employee al fine di accedere al metodo 
viewHello di Person, utilizziamo la keyword parent, seguita 
dall'operatore di risoluzione di scope ("::") e dal nome 
dell'elemento desiderato. Questo permette di richiamare 
gli elementi della classe genitore direttamente nelle sottoclassi.
Comment

PREVIOUS NEXT
Code Example
Php :: toggle switch php 
Php :: how to set 1 year date without saturday in while loop php 
Php :: laravel collection take 
Php :: wp add_action 
Php :: php enablem mod 
Php :: php unique id length 
Php :: how to add image in wordpress theme 
Php :: validate number should by 12 digit in php 
Php :: add filter in wordpress 
Php :: laravel php what does compact 
Php :: cakephp find_in_set 
Php :: @yield extends laravel 
Php :: server.php not found 
Php :: laravel "query()-find" 
Php :: optional parameter in laravel 
Php :: add javascript to wordpress functions php 
Php :: laravel vue pagination with search filter 
Php :: laravel sanctum authentication 
Php :: validate file exist php 
Php :: laravel enable query log 
Php :: single row data from table in laravel 
Php :: php loopthrough object 
Php :: create services in laravel with command line 
Php :: php ?? operator 
Php :: Laravel - multiple select query 
Php :: laravel rules 
Php :: laravel join 2 tables eloquent 
Php :: PHP Filters Advanced 
Php :: advanaced layout builder enfold custom post type 
Php :: IgasterLaravel ThemeExceptions heme Already Exists 
ADD CONTENT
Topic
Content
Source link
Name
1+9 =