<?php

/**
*public protected private PHP封装的实例
*/
/*class tv
{
private $shengyin; function __construct()
{
$this->shengyin = 20;
} public function yaokongqi($anniu, $liang = '')
{
switch ($anniu) {
case "shengyin":
$this->shengyin($liang);
break;
case "guandiansi":
$this->guandiansi();
break;
case 'huantai':
$this->huantai($liang);
break;
case 'jingyin':
$this->jinyin($liang);
break;
}
} public function shengyin($daxiao)
{
$this->shengyin = $daxiao>0?$this->shengyin + $daxiao:$this->shengyin - $daxiao;
echo "现在的声音是:{$this->shengyin}<br/>";
} private function guandiansi()
{
echo "关电视";
} private function huantai($pindao)
{
echo "现在是第{$pindao}频道";
} private function jinyin($zhuangtai)
{
$zhuangtai == 1 ? "电视静音了" : "打开声音";
} public function huodeshengyin()
{
return $this->shengyin;
}
} $tv1 = new tv();
$tv1->yaokongqi('shengyin', 6);
echo "现在的电视声音是:".$tv1->huodeshengyin();
*/ //最大化的封装,最小化的释放
/*class db
{
private $mysqli;//数据库链接
private $options;//SQL选项
private $tableName;//表名 function __construct($tabName)
{
$this->tableName = $tabName;
$this->db();
} private function db()
{
$this->mysqli = new mysqli('localhost', 'root', '', 'blog');
$this->mysqli->query('SET NAMES utf8');
} function fields($fildsArr)
{
if (empty($fildsArr)) {
$this->options['fields'] = ''; }
if (is_array($fildsArr)) {
$this->options['fields'] = implode(',', $fildsArr);
} else {
$this->options['fields'] = $fildsArr;
}
return $this; } function order($str)
{
$this->options['order'] = "ORDER BY".$str;
return $this;
} function select()
{
$sql = "SELECT {$this->options['fields']} FROM {$this->tableName} {$this->options['order']}";
return $this->query($sql);
} private function query($sql)
{
$result = $this->mysqli->query($sql);
$rows = array();
while ($row = $result->fetch_assoc()) {
$rows[]= $row;
}
return $rows;
} private function close()
{
$this->mysqli->close();
} function __destruct()
{
$this->close();
}
} $chanel = new db('blog_article');
$changelInfo=$chanel->fields('art_id,art_title,art_tag')->select();
echo '<pre>';
print_r($changelInfo);*/ //public () 本类,子类 ,外部对象都可以执行
//protected (受保护的) 本类,子类,可以执行,外部对象不可以执行
//private (私有的) 只能在奔雷执行,子类与外部对象都不可以调用 /*class a{
protected function aa(){
echo 222;
}
}
class b extends a{
function bb(){
$this->aa();
}
}
$c=new b();
$c->bb(); //输出:222;*/ /*class a{
private function aa(){
echo 222;
}
}
class b extends a{
function bb(){
$this->aa();
}
}
$c=new b();
$c->bb(); //报错:*/

  

004-对象——public protected private PHP封装的实例的更多相关文章

  1. 【转】C++易混知识点5:实例讲解Public Protected Private作用域,继承的区别和用意

    大学生涯,涉及到类的作用域,继承都是用的public 共有继承,当时也没想那么多,觉得共有继承多方便,多简单,反正没有太多的限制,不管是类的成员或者是基类的成员函数都可以访问.没有深究.其实这里面真是 ...

  2. 快速理解类的访问控制(public,protected,private)

    接触过面向对象编程的朋友们都知道类中的访问控制符无非有三个,public, protected, private. 理解他就先从期望他达到的效果先说吧 Public: 使成员对于整个程序内(类内类外) ...

  3. 【转载】C++中public,protected,private访问

    第一:private, public, protected 访问标号的访问范围. 假如我们约定: 类内部-----指的是当前类类型的定义中,以及其成员函数的声明和定义中: 类外部-----指的是不在当 ...

  4. JAVA修饰符类型(public,protected,private,friendly)

    转自:http://www.cnblogs.com/webapplee/p/3771708.html JAVA修饰符类型(public,protected,private,friendly) publ ...

  5. C++ 类访问控制(public/protected/private)

    第一:private, public, protected 访问标号的访问范围. private:只能由1.该类中的函数.2.其友元函数访问. 不能被任何其他访问,该类的对象也不能访问. protec ...

  6. JAVA类型修饰符(public,protected,private,friendly)

    JAVA类型修饰符(public,protected,private,friendly) public的类.类属变量及方法.包内及包外的不论什么类均能够訪问:protected的类.类属变量及方法,包 ...

  7. C++:继承访问属性(public/protected/private)

    • 公有继承(public) 公有继承在C++中是最常用的一种继承方式,我们先来看一个示例: #include<iostream> using namespace std; class F ...

  8. C++中public,protected,private派生类继承问题和访问权限问题

    C++中public,protected,private派生类继承问题和访问权限问题 当一个子类从父类继承时,父类的所有成员成为子类的成员,此时对父类成员的访问状态由继承时使用的继承限定符决定. 1. ...

  9. php public protected private属性实例详解

    php 类中函数和类变量都有三个属性:public protected private,具体什么时候使用什么属性好纠结,特意找了个实例,这样看起来更清晰. public 表示全局,类内部外部子类都可以 ...

随机推荐

  1. 斐迅面试记录—Http协议中的Header

    HTTP Request的Header信息 1.HTTP请求方式 如下表: 说明:  主要使用到“GET”和“POST”. 实例: POST /test/tupian/cm HTTP/1.1 分成三部 ...

  2. 论文笔记:dropout

    Improving neural networks by preventing co-adaptation of feature detectors arXiv preprint arXiv: 120 ...

  3. python的socket网络编程(二)

    (注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 国庆八天假,已过去3天了,加上明天又是中秋,还是决定在今晚把之前想写的东西写完.国庆节在宁波老家,吃好喝好睡好,就是没有好好 ...

  4. ELK日志系统

    ELK stack是又Elasticsearch,lostash,kibana 三个开源软件的组合而成,形成一款强大的实时日志收集分析展示系统. Logstash:日志收集工具,可以从本地磁盘,网络服 ...

  5. 新linux系统上rz 与sz命令不可用

    使用命令进行安装:yum install lrzsz  即可使用

  6. 切换usb口的命令

    open:dd if=imx6dl-sabresd-usboc.dtb of=/dev/mmcblk0 bs=512 seek=1536 conv=fsyncclose:dd if=imx6dl-sa ...

  7. C++文件路径的写法

    转自:http://blog.csdn.net/chengonghao/article/details/51057780 文件路径的表示可以分为绝对路径和相对路径: c++中\\是一种转义字符,他表示 ...

  8. linux中断的下半部机制

    一.中断处理为什么要下半部?Linux在中断处理中间中断处理分了上半部和下半部,目的就是提高系统的响应能力和并发能力.通俗一点来讲:当一个中断产生,调用该中断对应的处理程序(上半部)然后告诉系统,对应 ...

  9. c#结构体和字节流之间的相互转换

    结构体转byte数组 1  首先要明白 ,是 在那个命名空间下  System.Runtime.InteropServices; 2  首先得到结构体的大小 2  开辟相应的内存空间 3  将结构体填 ...

  10. 利用MacBook Air入侵无线网络

    目前无线网络的加密方式主要有WEP,WPA/WPA2.这是最常看到的加密方式,最近由于需要,专门去研究了一下如何入侵无线网络. 1.入侵WEP加密的无线网络 WEP加密方式现在已经很不安全了,因为只要 ...