<?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. Spring-1-F Dice(HDU 5012)解题报告及测试数据

    Dice Time Limit:1000MS     Memory Limit:65536KB Description There are 2 special dices on the table. ...

  2. 论文笔记:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

    ICML, 2015 S. Ioffe and C. Szegedy 解决什么问题(What) 分布不一致导致训练慢:每一层的分布会受到前层的影响,当前层分布发生变化时,后层网络需要去适应这个分布,训 ...

  3. Linux下修改时间

    修改linux的时间可以使用date指令 date命令的功能是显示和设置系统日期和时间. 输入date 查看目前系统时间. 修改时间需要 date -功能字符 修改内容 命令中各选项的含义分别为: - ...

  4. servlet中通过getWriter()获取out返回给浏览器出现中文乱码问题

    感谢博主https://blog.csdn.net/louyongfeng3613/article/details/50160317 在Servlet编程中,经常需要通过response对象将一些信息 ...

  5. 十八般武艺之 Runloop

    嗯,runloop ,看过,用过.但是有时候突然被问到,总是不能很好的描述给他人,也许是程序员本来口拙的缘故吧.另外,也是对runloop还是理解的不够透彻. 于是乎,决定重新整理一下,加深一下印象. ...

  6. WebSocket使用SuperWebSocket结合WindowsService实现实时消息

    SuperWebSocket在WebService中的应用 最开始使用是寄托在IIS中,发布之后测试时半个小时就会断开,所以改为WindowsService 1. 新建Windows服务项目[Test ...

  7. eclipse web项目的发布路径

    java Build path是编译路径设置,主要用来设置源代码的编译路径默认是default output folder Web Deployment Assembly是eclipse中的发布路径设 ...

  8. REST API Design

  9. Junit中的setup和teardown方法

    setup需要@before注解,实现测试前的初始化工作 teardown需要@after注解,测试完成后垃圾回收等后续工作

  10. RocEDU.阅读.写作《乌合之众》(一)

    序言 作者在序言里主要论述了时代演变的内在原因,表明对群体进行研究的重要性,阐述了研究群体行为特征时的研究方法,并概述了群体的发展过程. 造成文明变革的唯一重要变化,是影响到思想.观念和信仰的变化.目 ...