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 :: laravel eloquent relationships 
Php :: global variable in laravel 
Php :: connect php to db 
Php :: laravel database backup 
Php :: create crud controller in laravel 5.8 
Php :: how to lookup value inside object php 
Php :: php strings 
Php :: How to add .active class to active menu item 
Php :: php ascii to decimal 
Php :: laravel collection all 
Php :: serialize php 
Php :: how to create object in php 
Php :: laravel + join 2 eloquent queries 
Php :: all() in laravel 
Php :: Symfony Expected argument of type "string", "null" given 
Php :: laravel admin disable batch selection 
Php :: In PackageManifest.php line 131: Undefined index: name 
Php :: how to convert amount in words in php 
Php :: @forelse laravel 
Php :: How to post a mutlipart file using file_get_contents in php 
Php :: join with 2 table where id match in table 1 comma separated 
Php :: php file request 
Php :: email in ctf 
Php :: 200usd to php 
Php :: auto complete order paid3 
Php :: menu order for posts 
Php :: set php version for a domain with whm api 
Php :: example of valid php variables 
Php :: laravel after method() 
Php :: Yii2 hasMany relation additional condition 
ADD CONTENT
Topic
Content
Source link
Name
2+8 =