Home >Backend Development >PHP Tutorial >36 PHP object-oriented

36 PHP object-oriented

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

1. __set() and __get() methods

<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>object</strong>


1. Abstract
36 PHP面向<strong>object</strong>

2. Encapsulation
36 PHP面向<strong>object</strong>
36 PHP面向<strong>Object</strong>
36 PHP面向<strong>Object</strong>
36 PHP面向<strong>Object</strong>


3. Polymorphic
36 PHP面向<strong>Object</strong>
PHP does not support functional polymorphism.

<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>

Rewrite (overwrite): The name and number of parameters must be the same
36 PHP面向<strong>Object</strong>
36 PHP面向<strong>Object</strong>


5. Abstract class
36 PHP面向<strong>Object</strong>

The above has introduced 36 PHP object-oriented aspects, including aspects of content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn