php函数、类和对象以及类的封装、继承、类的静态方法、静态属性
1、函数
php内置函数可以直接使用,如果没有安装php扩展即可
自定义函数
’; var_dump($var); }<span style="color: #008000">//</span><span style="color: #008000">函数function 函数名 </span> <span style="color: #0000ff">function</span> dump(<span style="color: #800080">$var</span> = <span style="color: #0000ff">null</span>){ <span style="color: #008000">//</span><span style="color: #008000">支出默认参数值</span> <span style="color: #0000ff">echo</span> ‘<pre class="brush:php;toolbar:false">登入後複製2、类(class)和对象( new Obj)
<span style="color: #000000">php </span><span style="color: #008000">//</span><span style="color: #008000">定义一个人的类,现在还不是对象</span> <span style="color: #0000ff">class</span><span style="color: #000000"> Person{ </span><span style="color: #008000">//</span><span style="color: #008000">私有属性 </span>登入後複製<span style="color: #008000"> </span><span style="color: #0000ff">private</span> <span style="color: #800080">$eye</span> = '大眼睛'<span style="color: #000000">; </span><span style="color: #0000ff">private</span> <span style="color: #800080">$mouth</span> = '小嘴巴'<span style="color: #000000">; </span><span style="color: #0000ff">private</span> <span style="color: #800080">$leg</span> = '大长腿'<span style="color: #000000">; </span><span style="color: #008000">//</span><span style="color: #008000">构造方法 new 对象的时候自定调用</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">function</span><span style="color: #000000"> __construct() { </span><span style="color: #0000ff">echo</span> <span style="color: #ff00ff">__CLASS__</span><span style="color: #000000">; } </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">function</span><span style="color: #000000"> run() { </span><span style="color: #0000ff">echo</span> <span style="color: #800080">$this</span>-><span style="color: #000000">leg; } </span><span style="color: #008000">//</span><span style="color: #008000">学习 会用到 腿(走路)、眼睛(看书)、嘴(念书)</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">function</span><span style="color: #000000"> study() { </span><span style="color: #0000ff">echo</span> <span style="color: #800080">$this</span>->leg, <span style="color: #800080">$this</span>->eye, <span style="color: #800080">$this</span>-><span style="color: #000000">mouth; } }</span><span style="color: #008000">//</span><span style="color: #008000">使用类 new以后就变成了对象</span><span style="color: #800080">$person</span> = <span style="color: #0000ff">new</span> Person(); <span style="color: #008000">//</span><span style="color: #008000">输出 Person</span><span style="color: #800080">$person</span> -> run(); <span style="color: #008000">//</span><span style="color: #008000">输出 大长腿</span><span style="color: #800080">$person</span> -> study(); <span style="color: #008000">//</span><span style="color: #008000">输出 大长腿 大眼睛 小嘴唇</span>登入後複製3、类的封装(public, protected, private)和继承(extends)
<span style="color: #008000">//</span><span style="color: #008000">类的继承 </span><span style="color: #0000ff">class</span><span style="color: #000000"> A{ </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">function</span><span style="color: #000000"> help() { </span><span style="color: #0000ff">echo</span> <span style="color: #ff00ff">__METHOD__</span><span style="color: #000000">; } </span><span style="color: #008000">//</span><span style="color: #008000">声明一个吃的方法 私有的</span> <span style="color: #0000ff">private</span> <span style="color: #0000ff">function</span><span style="color: #000000"> eat() { </span><span style="color: #0000ff">echo</span> <span style="color: #ff00ff">__METHOD__</span><span style="color: #000000">; }}</span><span style="color: #008000">//</span><span style="color: #008000">子类可以继承父类所有的公共方法和属性、受保护的方法和属性,私有方法除外//如果想使用,重写即可</span><span style="color: #0000ff">class</span> B <span style="color: #0000ff">extends</span><span style="color: #000000"> A{ </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">function</span><span style="color: #000000"> doSomething() { </span><span style="color: #800080">$this</span> -> help(); <span style="color: #008000">//</span><span style="color: #008000">继承了父类的方法 前提是声明为public </span> <span style="color: #0000ff">echo</span> '<hr>'<span style="color: #000000">; </span><span style="color: #800080">$this</span> -> eat(); <span style="color: #008000">//</span><span style="color: #008000">因为吃是私有的,子类不能使用, 这里在子类中写了一个eat方法.</span><span style="color: #000000"> } </span><span style="color: #008000">//</span><span style="color: #008000">子类的吃</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">function</span><span style="color: #000000"> eat() { </span><span style="color: #0000ff">echo</span> <span style="color: #ff00ff">__METHOD__</span><span style="color: #000000">; }}</span><span style="color: #800080">$b</span> = <span style="color: #0000ff">new</span><span style="color: #000000"> B;</span><span style="color: #800080">$b</span>->doSomething();登入後複製//输出结果登入後複製A::help
B::eat4、类的静态方法和静态属性
<span style="color: #000000">php</span><span style="color: #008000">//</span><span style="color: #008000">定义一个Url 相关的类</span><span style="color: #0000ff">class</span><span style="color: #000000"> Url{ </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">function</span> createUrl(<span style="color: #800080">$arr</span> =<span style="color: #000000"> []) { </span><span style="color: #0000ff">echo</span> <span style="color: #ff00ff">__METHOD__</span><span style="color: #000000">; } </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">function</span> redirect(<span style="color: #800080">$url</span> = ''<span style="color: #000000">) { </span><span style="color: #0000ff">echo</span> <span style="color: #ff00ff">__METHOD__</span><span style="color: #000000">; } </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">function</span><span style="color: #000000"> getCurrentUrl() { </span><span style="color: #0000ff">echo</span> <span style="color: #ff00ff">__METHOD__</span><span style="color: #000000">; }}</span><span style="color: #008000">//</span><span style="color: #008000">把方法声明成静态方法,不需要每次都实例化(new)对象,操作方便,节省内存,效率更高</span><span style="color: #0000ff">echo</span> Url::createUrl(<span style="color: #800080">$var</span>=''<span style="color: #000000">);</span><span style="color: #0000ff">echo</span> Url::redirect(<span style="color: #800080">$url</span>=''<span style="color: #000000">);</span><span style="color: #0000ff">echo</span> Url::getCurrentUrl();登入後複製5、类的静态属性
<span style="color: #000000">php</span><span style="color: #008000">//</span><span style="color: #008000">定义一个Url 相关的类</span><span style="color: #0000ff">class</span><span style="color: #000000"> Url{ </span><span style="color: #008000">//</span><span style="color: #008000">声明为类常量</span> <span style="color: #0000ff">const</span> URL = 'http://www.baidu.com'; <span style="color: #008000">//</span><span style="color: #008000">从5.3以后可以直接在类外部使用 const //声明为静态变量</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #800080">$var</span> = 'it is very good'<span style="color: #000000">; </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">function</span> createUrl(<span style="color: #800080">$arr</span> =<span style="color: #000000"> []) { </span><span style="color: #0000ff">echo</span> self::<span style="color: #000000">URL; </span><span style="color: #0000ff">echo</span> '<br>'<span style="color: #000000">; </span><span style="color: #0000ff">echo</span> self::<span style="color: #800080">$var</span><span style="color: #000000">; </span><span style="color: #0000ff">echo</span> '<br>'<span style="color: #000000">; </span><span style="color: #0000ff">echo</span> <span style="color: #ff00ff">__METHOD__</span><span style="color: #000000">; } </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">function</span> redirect(<span style="color: #800080">$url</span> = ''<span style="color: #000000">) { </span><span style="color: #0000ff">echo</span> <span style="color: #ff00ff">__METHOD__</span><span style="color: #000000">; } </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">function</span><span style="color: #000000"> getCurrentUrl() { </span><span style="color: #0000ff">echo</span> <span style="color: #ff00ff">__METHOD__</span><span style="color: #000000">; }}</span><span style="color: #008000">//</span><span style="color: #008000">把方法声明成静态方法,不需要每次都实例化(new)对象,操作方便,节省内存,效率更高</span><span style="color: #0000ff">echo</span> Url::createUrl(<span style="color: #800080">$var</span>='');登入後複製