Abstract class and methods in php

Abstract class and methods in php

  • Different ways to write a PHP code
  • How to write comments in PHP ?
  • Introduction to Codeignitor (PHP)
  • How to echo HTML in PHP ?
  • Error handling in PHP
  • How to show All Errors in PHP ?
  • How to Start and Stop a Timer in PHP ?
  • How to create default function parameter in PHP?
  • How to check if mod_rewrite is enabled in PHP ?
  • Web Scraping in PHP Using Simple HTML DOM Parser
  • How to pass form variables from one page to other page in PHP ?
  • How to display logged in user information in PHP ?
  • How to find out where a function is defined using PHP ?
  • How to Get $_POST from multiple check-boxes ?
  • How to Secure hash and salt for PHP passwords ?
  • Program to Insert new item in array on any position in PHP
  • PHP append one array to another
  • How to delete an Element From an Array in PHP ?
  • How to print all the values of an array in PHP ?
  • How to perform Array Delete by Value Not Key in PHP ?
  • Removing Array Element and Re-Indexing in PHP
  • How to count all array elements in PHP ?
  • How to insert an item at the beginning of an array in PHP ?
  • PHP Check if two arrays contain same elements
  • Merge two arrays keeping original keys in PHP
  • PHP program to find the maximum and the minimum in array
  • How to check a key exists in an array in PHP ?
  • PHP | Second most frequent element in an array
  • Sort array of objects by object fields in PHP
  • PHP | Sort array of strings in natural and standard orders
  • How to pass PHP Variables by reference ?
  • How to format Phone Numbers in PHP ?
  • How to use php serialize() and unserialize() Function
  • Implementing callback in PHP
  • PHP | Merging two or more arrays using array_merge()
  • PHP program to print an arithmetic progression series using inbuilt functions
  • How to prevent SQL Injection in PHP ?
  • How to extract the user name from the email ID using PHP ?
  • How to count rows in MySQL table in PHP ?
  • How to parse a CSV File in PHP ?
  • How to generate simple random password from a given string using PHP ?
  • How to upload images in MySQL using PHP PDO ?
  • How to check foreach Loop Key Value in PHP ?
  • How to properly Format a Number With Leading Zeros in PHP ?
  • How to get a File Extension in PHP ?
  • How to get the current Date and Time in PHP ?
  • PHP program to change date format
  • How to convert DateTime to String using PHP ?
  • How to get Time Difference in Minutes in PHP ?
  • Return all dates between two dates in an array in PHP
  • Sort an array of dates in PHP
  • How to get the time of the last modification of the current page in PHP?
  • How to convert a Date into Timestamp using PHP ?
  • How to add 24 hours to a unix timestamp in php?
  • Sort a multidimensional array by date element in PHP
  • Convert timestamp to readable date/time in PHP
  • PHP | Number of week days between two dates
  • PHP | Converting string to Date and DateTime
  • How to get last day of a month from date in PHP ?
  • PHP | Change strings in an array to uppercase
  • How to convert first character of all the words uppercase using PHP ?
  • How to get the last character of a string in PHP ?
  • How to convert uppercase string to lowercase using PHP ?
  • How to extract Numbers From a String in PHP ?
  • How to replace String in PHP ?
  • How to Encrypt and Decrypt a PHP String ?
  • How to display string values within a table using PHP ?
  • How to write Multi-Line Strings in PHP ?
  • How to check if a String Contains a Substring in PHP ?
  • How to append a string in PHP ?
  • How to remove white spaces only beginning/end of a string using PHP ?
  • How to Remove Special Character from String in PHP ?
  • How to create a string by joining the array elements using PHP ?
  • How to prepend a string in PHP ?
Читайте также:  Date query in mysql with php

Источник

PHP OOP — Abstract Classes

Abstract classes and methods are when the parent class has a named method, but need its child class(es) to fill out the tasks.

An abstract class is a class that contains at least one abstract method. An abstract method is a method that is declared, but not implemented in the code.

An abstract class or method is defined with the abstract keyword:

Syntax

abstract class ParentClass abstract public function someMethod1();
abstract public function someMethod2($name, $color);
abstract public function someMethod3() : string;
>
?>

When inheriting from an abstract class, the child class method must be defined with the same name, and the same or a less restricted access modifier. So, if the abstract method is defined as protected, the child class method must be defined as either protected or public, but not private. Also, the type and number of required arguments must be the same. However, the child classes may have optional arguments in addition.

So, when a child class is inherited from an abstract class, we have the following rules:

  • The child class method must be defined with the same name and it redeclares the parent abstract method
  • The child class method must be defined with the same or a less restricted access modifier
  • The number of required arguments must be the same. However, the child class may have optional arguments in addition

Example

// Parent class
abstract class Car public $name;
public function __construct($name) $this->name = $name;
>
abstract public function intro() : string;
>

// Child classes
class Audi extends Car public function intro() : string return «Choose German quality! I’m an $this->name!»;
>
>

class Volvo extends Car public function intro() : string return «Proud to be Swedish! I’m a $this->name!»;
>
>

class Citroen extends Car public function intro() : string return «French extravagance! I’m a $this->name!»;
>
>

// Create objects from the child classes
$audi = new audi(«Audi»);
echo $audi->intro();
echo «
«;

$volvo = new volvo(«Volvo»);
echo $volvo->intro();
echo «
«;

$citroen = new citroen(«Citroen»);
echo $citroen->intro();
?>

Example Explained

The Audi, Volvo, and Citroen classes are inherited from the Car class. This means that the Audi, Volvo, and Citroen classes can use the public $name property as well as the public __construct() method from the Car class because of inheritance.

But, intro() is an abstract method that should be defined in all the child classes and they should return a string.

PHP — More Abstract Class Examples

Let’s look at another example where the abstract method has an argument:

Example

abstract class ParentClass // Abstract method with an argument
abstract protected function prefixName($name);
>

class ChildClass extends ParentClass public function prefixName($name) if ($name == «John Doe») $prefix = «Mr.»;
> elseif ($name == «Jane Doe») $prefix = «Mrs.»;
> else $prefix = «»;
>
return » «;
>
>

$class = new ChildClass;
echo $class->prefixName(«John Doe»);
echo «
«;
echo $class->prefixName(«Jane Doe»);
?>

Let’s look at another example where the abstract method has an argument, and the child class has two optional arguments that are not defined in the parent’s abstract method:

Example

abstract class ParentClass // Abstract method with an argument
abstract protected function prefixName($name);
>

class ChildClass extends ParentClass // The child class may define optional arguments that are not in the parent’s abstract method
public function prefixName($name, $separator = «.», $greet = «Dear») if ($name == «John Doe») $prefix = «Mr»;
> elseif ($name == «Jane Doe») $prefix = «Mrs»;
> else $prefix = «»;
>
return » «;
>
>

$class = new ChildClass;
echo $class->prefixName(«John Doe»);
echo «
«;
echo $class->prefixName(«Jane Doe»);
?>

Источник

Оцените статью