004-对象——public protected private PHP封装的实例
<?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封装的实例的更多相关文章
- 【转】C++易混知识点5:实例讲解Public Protected Private作用域,继承的区别和用意
大学生涯,涉及到类的作用域,继承都是用的public 共有继承,当时也没想那么多,觉得共有继承多方便,多简单,反正没有太多的限制,不管是类的成员或者是基类的成员函数都可以访问.没有深究.其实这里面真是 ...
- 快速理解类的访问控制(public,protected,private)
接触过面向对象编程的朋友们都知道类中的访问控制符无非有三个,public, protected, private. 理解他就先从期望他达到的效果先说吧 Public: 使成员对于整个程序内(类内类外) ...
- 【转载】C++中public,protected,private访问
第一:private, public, protected 访问标号的访问范围. 假如我们约定: 类内部-----指的是当前类类型的定义中,以及其成员函数的声明和定义中: 类外部-----指的是不在当 ...
- JAVA修饰符类型(public,protected,private,friendly)
转自:http://www.cnblogs.com/webapplee/p/3771708.html JAVA修饰符类型(public,protected,private,friendly) publ ...
- C++ 类访问控制(public/protected/private)
第一:private, public, protected 访问标号的访问范围. private:只能由1.该类中的函数.2.其友元函数访问. 不能被任何其他访问,该类的对象也不能访问. protec ...
- JAVA类型修饰符(public,protected,private,friendly)
JAVA类型修饰符(public,protected,private,friendly) public的类.类属变量及方法.包内及包外的不论什么类均能够訪问:protected的类.类属变量及方法,包 ...
- C++:继承访问属性(public/protected/private)
• 公有继承(public) 公有继承在C++中是最常用的一种继承方式,我们先来看一个示例: #include<iostream> using namespace std; class F ...
- C++中public,protected,private派生类继承问题和访问权限问题
C++中public,protected,private派生类继承问题和访问权限问题 当一个子类从父类继承时,父类的所有成员成为子类的成员,此时对父类成员的访问状态由继承时使用的继承限定符决定. 1. ...
- php public protected private属性实例详解
php 类中函数和类变量都有三个属性:public protected private,具体什么时候使用什么属性好纠结,特意找了个实例,这样看起来更清晰. public 表示全局,类内部外部子类都可以 ...
随机推荐
- TabLayout与ViewPager同步后Tab的标题不显示
一.概述 1.1 问题描述 TabLayout+ViewPager后,TabLayout的TabItem不显示的问题: 1.2 截图 二.结论 mTabs.setupWithViewPager(mVi ...
- IDEA 程序直接运行分析
今天用IDEA运行SpringBoot程序,启动时始终报错说读取不到datasource的url配置. 分析代码的resources目录,是有配置文件的,配置也是正常的.如下图: 后来经人指点,是因为 ...
- Windows和Ubuntu双系统
1 重装系统:Windows(Win7) 1.1 下载大白菜/老毛桃等工具,把U盘制作成启动盘 1.2 下载windows系统镜像文件放入U盘中 1.3 U盘插入待装系统的主机,开机进入BIOS( ...
- 基于JWT的token身份认证方案
一.使用JSON Web Token的好处? 1.性能问题. JWT方式将用户状态分散到了客户端中,相比于session,可以明显减轻服务端的内存压力. Session方式存储用户id的最大弊病在于S ...
- cookie注入原理
cookie注入原理-->红客联盟 http://www.2cto.com/article/201202/118837.html 前言: document.cookie:表示当前浏览器中的coo ...
- Excel水平线画不直,图形对象对不齐,怎么办
看够了千篇一律的数字报表,不妨添加些图形对象来调剂下,今天小编excel小课堂(ID:excel-xiaoketang 长按复制)给各位分享10个插入图形对象时简单实用的小技巧. 01课题 今天小编e ...
- Qt、MVB
使用的陪测网卡是[众志诚MVB网卡],通过串口配置,可以接收和发送MVB数据. 一.MVB通信介绍 对于某一节点[如众志诚MVB网卡],为其配置0x710和0x720端口为源端口,用于发送数据,为其配 ...
- Centos7 Python3.x源码安装
第一步,安装开发工具集 yum -y groupinstall "Development tools" 第二步,安装相关依赖包: yum -y install zlib-devel ...
- 4.9版本的linux内核中eeprom存储芯片at24c512的驱动源码在哪里
答:drivers/misc/eeprom/at24.c,内核配置项为CONFIG_EEPROM_AT24 Location: -> Device Drivers -> Misc devi ...
- hadoop 3.1.1 安装
以下是本次搭建说使用的服务器 服务器IP分配 IP 节点名称 说明 192.168.172.130 master 主服务器 192.168.172.131 slave1 从服务器1 192.168.1 ...