> php教程 > php手册 > 본문

php函数、类和对象以及类的封装、继承、类的静态方法、静态属性,php静态

WBOY
풀어 주다: 2016-06-13 08:57:45
원래의
860명이 탐색했습니다.

php函数、类和对象以及类的封装、继承、类的静态方法、静态属性,php静态

   <p>1、函数</p>    <p>&#160;&#160;&#160; php内置函数可以直接使用,如果没有安装php扩展即可</p>    <p>&#160;&#160;&#160; 自定义函数</p>         <pre class="code"><span>//</span><span>函数function  函数名 </span>

    <span>function</span> dump(<span>$var</span> = <span>null</span>){    <span>//</span><span>支出默认参数值</span>

        <span>echo</span> ‘<pre/><span>’;

         </span><span>var_dump</span>(<span>$var</span><span>);

    }</span>
로그인 후 복사

2、类(class)和对象( new Obj)

<?<span>php 
</span><span>//</span><span>定义一个人的类,现在还不是对象</span>

 <span>class</span><span> Person
{
 </span><span>//</span><span>私有属性 </span>
로그인 후 복사
<span>    </span><span>private</span> <span>$eye</span> = '大眼睛'<span>;
    </span><span>private</span> <span>$mouth</span> = '小嘴巴'<span>;
    </span><span>private</span> <span>$leg</span> = '大长腿'<span>;
             
    </span><span>//</span><span>构造方法 new 对象的时候自定调用</span>
    <span>public</span> <span>function</span><span> __construct()
    {
        </span><span>echo</span> <span>__CLASS__</span><span>;
    }    
    </span><span>public</span> <span>function</span><span> run()
    {
        </span><span>echo</span>  <span>$this</span>-><span>leg;
    } 
    </span><span>//</span><span>学习 会用到 腿(走路)、眼睛(看书)、嘴(念书)</span>
    <span>public</span> <span>function</span><span> study()
    {
        </span><span>echo</span> <span>$this</span>->leg, <span>$this</span>->eye, <span>$this</span>-><span>mouth;

    }                 


}

</span><span>//</span><span>使用类 new以后就变成了对象</span>

<span>$person</span> = <span>new</span> Person();          <span>//</span><span>输出 Person</span>
<span>$person</span> -> run();                <span>//</span><span>输出  大长腿</span>
<span>$person</span> -> study();             <span>//</span><span>输出  大长腿 大眼睛 小嘴唇</span>
로그인 후 복사

3、类的封装(public, protected, private)和继承(extends)

<span>//</span><span>类的继承  </span>
<span>class</span><span> A
{
    </span><span>public</span> <span>function</span><span> help()
    {
        </span><span>echo</span> <span>__METHOD__</span><span>;
    }
    </span><span>//</span><span>声明一个吃的方法 私有的</span>
    <span>private</span> <span>function</span><span> eat()
    {
        </span><span>echo</span>  <span>__METHOD__</span><span>;
    }

}


</span><span>//</span><span>子类可以继承父类所有的公共方法和属性、受保护的方法和属性,私有方法除外
//如果想使用,重写即可</span>
<span>class</span> B <span>extends</span><span>  A
{
    </span><span>public</span> <span>function</span><span> doSomething()
    {
        </span><span>$this</span> -> help();   <span>//</span><span>继承了父类的方法   前提是声明为public </span>
        <span>echo</span> '<hr/>'<span>;
        </span><span>$this</span> -> eat();    <span>//</span><span>因为吃是私有的,子类不能使用, 这里在子类中写了一个eat方法.</span>
<span>
    }
    </span><span>//</span><span>子类的吃</span>
    <span>public</span> <span>function</span><span> eat()
    {
        </span><span>echo</span> <span>__METHOD__</span><span>;
    }

}
</span><span>$b</span> = <span>new</span><span> B;
</span><span>$b</span>->doSomething();
로그인 후 복사
//输出结果
로그인 후 복사

A::help


B::eat

4、类的静态方法和静态属性

<?<span>php

</span><span>//</span><span>定义一个Url 相关的类</span>
<span>class</span><span> Url
{
    </span><span>public</span> <span>static</span> <span>function</span> createUrl(<span>$arr</span> =<span> [])
    {
        </span><span>echo</span> <span>__METHOD__</span><span>;
    }
    </span><span>public</span> <span>static</span> <span>function</span> redirect(<span>$url</span> = ''<span>)
    {
        </span><span>echo</span> <span>__METHOD__</span><span>;
    }
    </span><span>public</span> <span>static</span> <span>function</span><span> getCurrentUrl()
    {
        </span><span>echo</span> <span>__METHOD__</span><span>;
    }
}
</span><span>//</span><span>把方法声明成静态方法,不需要每次都实例化(new)对象,操作方便,节省内存,效率更高</span>
<span>echo</span>  Url::createUrl(<span>$var</span>=''<span>);
</span><span>echo</span>  Url::redirect(<span>$url</span>=''<span>);
</span><span>echo</span>  Url::getCurrentUrl();
로그인 후 복사

5、类的静态属性

<?<span>php

</span><span>//</span><span>定义一个Url 相关的类</span>
<span>class</span><span> Url
{
    </span><span>//</span><span>声明为类常量</span>
    <span>const</span> URL = 'http://www.baidu.com'; <span>//</span><span>从5.3以后可以直接在类外部使用 const
    //声明为静态变量</span>
     <span>public</span> <span>static</span> <span>$var</span> = 'it is very good'<span>;
    </span><span>public</span> <span>static</span> <span>function</span> createUrl(<span>$arr</span> =<span> [])
    {
        </span><span>echo</span> self::<span>URL;
        </span><span>echo</span> '<br/>'<span>;
        </span><span>echo</span> self::<span>$var</span><span>;
        </span><span>echo</span> '<br/>'<span>;
        </span><span>echo</span> <span>__METHOD__</span><span>;
    }
    </span><span>public</span> <span>static</span> <span>function</span> redirect(<span>$url</span> = ''<span>)
    {
        </span><span>echo</span> <span>__METHOD__</span><span>;
    }
    </span><span>public</span> <span>static</span> <span>function</span><span> getCurrentUrl()
    {
        </span><span>echo</span> <span>__METHOD__</span><span>;
    }
}
</span><span>//</span><span>把方法声明成静态方法,不需要每次都实例化(new)对象,操作方便,节省内存,效率更高</span>
<span>echo</span>  Url::createUrl(<span>$var</span>='');
로그인 후 복사
관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿