Heim  >  Artikel  >  Backend-Entwicklung  >  Beispielanalyse einer objektorientierten PHP-Programmiermethode

Beispielanalyse einer objektorientierten PHP-Programmiermethode

墨辰丷
墨辰丷Original
2018-05-29 11:00:221376Durchsuche

In diesem Artikel werden hauptsächlich objektorientierte PHP-Programmiermethoden vorgestellt und Beispiele mit einer detaillierten Analyse der Konzepte, Definitionen, Konstruktoren, Destruktoren, Vererbungen, Überladungen und Schnittstellen der an der objektorientierten PHP-Programmierung beteiligten Klassen kombiniert und andere Konzepte und Nutzungsfähigkeiten, Freunde in Not können sich auf

wie folgt beziehen:

PHP5 beginnt mit der objektorientierten Unterstützung, Beispiele sind wie folgt: 

<?php
class classname{
  var $attr1;
  var $attr2;
  public $attribute;
  const PI = 3.14;
  // 构造函数
  function __construct($param = &#39;default&#39;){
    echo "Constructor called with parameter $param<br />";
  }
  // 析构函数
  function __destruct(){
    echo &#39;<br />destruct&#39;;
  }
  //
  function oper1(){
    echo &#39;oper1<br />&#39;;
  }
  function oper2($param){
    $this->attr1 = $param;
    echo $this->attr1;
  }
  protected function oper3(){
    echo &#39;this is protected function<br />&#39;;
  }
  // 禁止继承
  final function oper5(){
  }
  function __get($name){
    return $this->$name;
  }
  function __set($name, $value){
    $this->$name = $value;
  }
  // 静态方法
  static function double($param){
    return $param * $param;
  }
}
$a = new classname(&#39;First&#39;);
$b = new classname(&#39;Second&#39;);
$c = new classname();
$c->oper2("hello");
echo &#39;<br />&#39;;
echo $c->attr1;
echo &#39;<br /><br />&#39;;
echo &#39; Per-Class常量 classname::PI -&#39;.classname::PI;
echo &#39;<br />静态方法: classname::double(3) - &#39; . classname::double(3);
echo &#39;<br />&#39;;
// 实现继承
echo &#39;实现继承<br />&#39;;
class B extends classname{
  function oper4(){
    $this->oper3(); // protected方法只能在
  }
  function oper1(){ // 重载
    echo &#39;this is class B /&#39;s oper1. <br />&#39;;
  }
}
$d = new B("forth");
$d->oper1();
$d->oper4();
// 接口
interface Displayable
{
  function display();
  function show();
}
class C implements Displayable
{
  function display(){
    echo &#39;这是对应接口的方法.<br />&#39;;
  }
  function show(){}
}
$e = new C();
$e->display();
echo &#39;检查$e是否为C的实例:&#39;;
echo ($e instanceof C) ? &#39;Yes&#39;:&#39;No&#39;;
// 克隆对象
$f = clone $e;
echo &#39;<br /><br />可以使用__clone()方法,在使用clone关键字时调用&#39;;
// 抽象类
abstract class E{}
// $f = new E(); // 这行将报错,不能实例化抽象类
// 参数重载,多态
class F{
  public $a = 1;
  public $b = 2;
  public $c = 3;
  function displayString($elem){
    echo &#39;<br />string:&#39;.$elem;
  }
  function displayInt($elem){
    echo &#39;<br />int:&#39;.$elem;
  }
  // 注意参数$p,是作为数组传入,必须使用下标访问
  function __call($method, $p){
    if ($method == &#39;display&#39;){
      if (is_string($p[0])){
        $this->displayString($p[0]);
      } else {
        $this->displayInt($p[0]);
      }
    }
  }
}
$g = new F();
$g->display(&#39;abc&#39;);
// 迭代器,读出实例的所有属性
foreach ($g as $att){
  echo &#39;<br />&#39;.$att;
}
// 反射
echo &#39;<br />&#39;;
$class = new ReflectionClass(&#39;F&#39;);
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
echo $class;
echo &#39;
'; ?>

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.


Verwandte Empfehlungen:

PHP-objektorientierteProgrammierungDetaillierte Erläuterung der Verwendung der OOP-Vererbung

Objektorientierte PHP-ProgrammierungDetaillierte Definition und Verwendung von Klassen

Objektorientierte PHP-ProgrammierungEntwicklungsideen und Fallanalyse

Das obige ist der detaillierte Inhalt vonBeispielanalyse einer objektorientierten PHP-Programmiermethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn