Heim >Backend-Entwicklung >PHP-Tutorial >36 PHP objektorientiert

36 PHP objektorientiert

WBOY
WBOYOriginal
2016-07-29 09:15:221051Durchsuche

1. __set()- und __get()-Methoden

<code><span><span>class</span><span>A</span>
    {</span><span>private</span><span>$n1</span>;
        <span>private</span><span>$n2</span>;
        <span>private</span><span>$n3</span>;

        <span>//使用__set()方法来管理所有的属性</span><span>public</span><span><span>function</span><span>__set</span><span>(<span>$pro_name</span>,<span>$pro_val</span>)</span>
        {</span><span>$this</span>->pro_name = <span>$pro_val</span>;
        }

        <span>//使用__get()方法获取所有属性的值</span><span>public</span><span><span>function</span><span>__get</span><span>(<span>$pro_name</span>)</span>
        {</span><span>if</span>(<span>isset</span>(<span>$pro_name</span>)){
                <span>return</span><span>$this</span>->pro_name;
            }<span>else</span>{
                <span>return</span><span>null</span>;
            }
        }
    }

    <span>$a1</span> = <span>new</span> A();
    <span>$a1</span>->n1 = <span>"aaa"</span>;
    <span>echo</span><span>$a1</span>->n1;</code>

36 PHP面向<strong>Objekt </strong>


1. Zusammenfassung
36 PHP面向<strong>Objekt</strong>

2. Kapselung
36 PHP面向<strong>Objekt</strong>
36 PHP面向<strong>Objekt</strong>
36 PHP面向<strong>Objekt</strong>
36 PHP面向<strong>Objekt</strong>


3 . Polymorphes
36 PHP面向<strong>Objekt</strong>
PHP unterstützt keinen funktionalen Polymorphismus.

<code><span><span>class</span><span>A</span>
    {</span><span>public</span><span><span>function</span><span>test1</span><span>(<span>$a</span>,<span>$b</span>)</span>
        {</span><span>echo</span><span>'接受一个参数'</span>;
        }

        <span>public</span><span><span>function</span><span>test2</span><span>(<span>$a</span>)</span>
        {</span><span>echo</span><span>'接受两个参数'</span>;
        }

        <span>// 这里提供一个__call;</span><span>// 当一个<strong>对象</strong>调用某个方法,而该方法不存在,则系统自动调用__call</span><span><span>function</span><span>__call</span><span>(<span>$method</span>,<span>$p</span>)</span>
        {</span>
            var_dump(<span>$p</span>);
            <span>if</span>(<span>$method</span> == <span>"test"</span>){
                <span>if</span>(count(<span>$p1</span>)==<span>1</span>){
                    <span>$this</span>->test1(<span>$p</span>);
                }<span>else</span><span>if</span>(count(<span>$p</span>)==<span>2</span>){
                    <span>$this</span>->test2(<span>$p</span>)
                }
            }
        }
    }



    <span>$a</span> = <span>new</span> A();
    <span>echo</span><span>$a</span>->test(<span>1</span>);
也可以判断类型。</code>

Umschreiben (überschreiben): Der Name und die Anzahl der Parameter müssen gleich sein
36 PHP面向<strong>Objekt</strong>
36 PHP面向<strong>Objekt</strong>


5. Abstrakte Klasse
36 PHP面向<strong>Objekt</strong>

Das Obige hat 36 objektorientierte PHP-Aspekte eingeführt, einschließlich Inhaltsaspekten. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

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