类:相似的数据和数据操作的封装  class

  成员量:普通的量加上一定的修饰就变成了成员量 public,protected,private

  成员方法:普通的函数,加上一定的修饰,放入到类中就变成了成员方法.

  实例化:类创建特例的过程(实例化一个对象 new)

  对象: 类的特例或者实例   object

认识类 -> 类的封装 -> 类的实例化 -> 对象的认识 -> 操作对象

------------------------------------------------------------------------------------------------------

类的使用步骤:

  1)创建类  class

    语法格式:

      class 类名{

      类的实现:

        成员量

        成员方法

      }

类名规范:

  1) 类名只能使用字母,下划线开头,不能以数字开头

  2) 类名不能使用关键字

  3) 类名一定有意义

  4) 类名不区分大小写,但是最好使用驼峰法的写法

    userModel       UserModel

  5)类名不能重复

  6) Class Connect{ } 空类,空函数么有意义,空类是为了项目后期扩展预留的接口

实例化类(instance):

  对象变量 = new 类名;

  或者  对象变量 = new 类名();

对象变量:  普通的变量,只不过他的类型是对象类型

$object = new myClass;/new myClass();

 类的使用

  is_object():判断某个变量是否是对象;

  instanceof:判断对象是否是某个类的实例化

<?php
// 类使用步骤
class MyClass{ }
$obj = new MyClass;
if(Class_exists("MyClass")){
if(is_object($obj))
echo "obj is object";
else
echo "obj isnot object"; }else{
echo "myclass isnot exists";
}
?>

  对象的实例化过程中,类名不区分大小写,后面可以有小括号也可省略,但是一定要注意,声明类的时候是没有小括号的(区别于函数)

成员变量:

  普通的变量放入到类中就变成了成员量(类的属性)

  格式:

    修饰符 变量名[=值];

    变量定义格式:

      修饰符 变量;

    变量的赋值

      修饰符 变量名 = 值;

    修饰符:  public : 公有的,在类内可以使用,在类外也可以使用,等价于 JS 的 var

Public $height = 100;

类外的使用:

  1) 对象名 -> 变量名(无$)

    类内调用

  2) $this -> 变量名(无$) 伪变量

      $this :对象本身

  3) 对于某个对象的操作,对于另外的对象没有任何影响,也就是所谓的对象无关性

成员方法:

  普通的函数放入到的类中就变成了成员方法

  格式:

    修饰符 function 方法名(参数){

      返回值

    }

<?php
// 类使用步骤
class MyClass{
public $age = 100;
}
$obj = new MyClass;
echo $obj -> age ; //
$obj -> age = 105; //
echo $obj -> age;
// 对象操作的无关性
$obj1 = new MyClass;
echo $obj1 -> age; //
$obj1 -> age = 200;
echo $obj1 -> age; //
echo $obj -> age; //
?>

类外使用:

  对象 -> 方法名(实参列表);

    类内使用

  $this -> 方法名(实参列表);

$this:

  伪变量

    代表的是当前操作该类的对象。

    类内使用成员变量和成员方法:

     $this -> 变量名(无$)

     $this -> 方法名(参数);

<?php
class UserModel{
public $user = "admin";
public $pwd = "123456";
public $tag = 0; // 用户是否登录的标示
// 传入用户登录的数据
public function setUserPwd($u,$p){
$this -> login($u,$p);
}
// 用户进行登录操作
public function login($tmp_u,$tmp_p){
if(!$this -> tag){
if($this -> user == $tmp_u && $this -> pwd == $tmp_p)
$this -> tag = 1; // 用户是登录状态
}
}
// 判断用户是否登录
public function checklogin(){
if($this -> tag == 1) return true;
else return false;
}
}
$obj = new UserModel;
$obj -> setUserPwd("admin","123456");
if($obj -> checklogin())
echo "login ok";
else
echo "login error";
?>

  类常量:

    类中恒定不变的量

    格式:

     Const 大写的常量名 = 值;

Eg:

Const HOST = “localhost”;

类外调用:

类名 :: 常量名

类内的调用: self (指本类)

Self::常量名

  NOTE:  

    1、::叫做作用域操作符

    2、常量在声明的时候必须赋值!

    3、声明常量的过程中,不需要其他的修饰符

<?php
class Myclass{
const HOST = "localhost";
const USER = "root";
public function show(){
echo Myclass::HOST;
echo self::USER; }
}
echo Myclass::HOST.Myclass::USER;
$obj = new MyClass;
echo "<hr/>";
$obj -> show();
?>

类的封装:

  数据库操作类

    1、定义类名和类功能

    2、类名:MySql

    3、功能:编程语言操作mysql数据库

  分析成员量:

    1、服务器名: $host

    2、数据库名: $dbname

    3、用户名:   $user

    4、密码:     $pwd

    5、链接编码: $code = “utf8”

    6、数据库链接  $link

    7、数据库返回的二维数组  $data = array();

    8、记录集 $result

  分析方法:

    1、添加

    2、删除

    3、修改

    4、查询

    5、数据库链接   _connect(){ 成功返回true }

    6、编码设置

    7、将记录集转换为二维数组

    8、将记录集中的第一条转换为一维数组。

<?php
//功能:数据库操作类
class MySql{
const HOST = "localhost";
const DBNAME = "thinkshop";
const USER = "root";
const PWD = ""; public $code = "utf8";
public $link = null;
public $data = array();
public $result = null;
//数据库链接方法
public function _connect(){
if(self::HOST != "" && self::USER != ""){
$this -> link = mysql_connect(self::HOST,self::USER,self::PWD);
if(is_resource($this -> link)){
$db = mysql_select_db(self::DBNAME,$this -> link);
if($db){
$this -> setCode();
return true;
}else{
return false;
}
}else{
return false;
}
}else{
return false;
}
}
// 设置编码
public function setCode($code = ""){
if($code != "")
$this -> code = $code;
mysql_query("set names ".$this -> code);
}
} $db = new MySql;
if($db -> _connect()) echo "connect ok";
else echo "connect error";
echo mysql_error();
?>

PHP 类的封装和使用的更多相关文章

  1. iOS开发--QQ音乐练习,旋转动画的实现,音乐工具类的封装,定时器的使用技巧,SliderBar的事件处理

    一.旋转动画的实现 二.音乐工具类的封装 -- 返回所有歌曲,返回当前播放歌曲,设置当前播放歌曲,返回下一首歌曲,返回上一首歌曲方法的实现 头文件 .m文件 #import "ChaosMu ...

  2. Java—类的封装、继承与多态

    一.类和对象 1.类 类是数据以及对数据的一组操作的封装体. 类声明的格式: 类声明 { 成员变量的声明: 成员方法的声明及实现: } 1.1 声明类 [修饰符] class 类<泛型> ...

  3. 第三篇 :微信公众平台开发实战Java版之请求消息,响应消息以及事件消息类的封装

    微信服务器和第三方服务器之间究竟是通过什么方式进行对话的? 下面,我们先看下图: 其实我们可以简单的理解: (1)首先,用户向微信服务器发送消息: (2)微信服务器接收到用户的消息处理之后,通过开发者 ...

  4. 025医疗项目-模块二:药品目录的导入导出-HSSF导入类的封装

    上一篇文章提过,HSSF的用户模式会导致读取海量数据时很慢,所以我们采用的是事件驱动模式.这个模式类似于xml的sax解析.需要实现一个接口,HSSFListener接口. 原理:根据excel底层存 ...

  5. 022医疗项目-模块二:药品目录的导入导出-对XSSF导出excel类进行封装

    资源全部来源于传智播客. 好的架构师写的程序,就算给刚入门的新手看,新手一看就知道怎么去用.所以我们要对XSSF导出excel类进行封装.这是架构师的工作,但我们也要知道. 我们写一个封装类: 这个类 ...

  6. 黑马程序员——JAVA基础之简述 类的封装

    ------- android培训.java培训.期待与您交流! ---------- 类的封装(Encapsulation)  封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 封装优 ...

  7. 【面试题001-补充】C++ MyString类的封装

    [面试题001-补充]C++ MyString类的封装  一,C++ MyString类的封装 String.h: 123456789101112131415161718192021222324252 ...

  8. java中关于类的封装与继承,this、super关键字的使用

    原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/5454849.html. this关键字: this代表当前对象,它有以下几种用途: 1.本类 ...

  9. Java---对象与类的封装

    一.类和对象: package cn.hncu.Myclasslearn; /** * * @author hncu_chx * * Mylove amin */ /**类是一种数据类型,声明一个类就 ...

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

    1.函数     php内置函数可以直接使用,如果没有安装php扩展即可     自定义函数 //函数function 函数名 function dump($var = null){ //支出默认参数 ...

随机推荐

  1. 请一定记得升级java虚拟机

    对于吃货出身又需要保持体重的我,出门一定要带男票,因为这样就可以把见到的好吃的都买给他吃,就当是自己吃了[汗].偶尔做梦还是会梦到自己一个角落里偷吃东西,听到有脚步声,抬起头,大哭起来:“我饿了.”  ...

  2. cassandra高级操作之分页的java实现(有项目具体需求)

    接着上篇博客,我们来谈谈java操作cassandra分页,需要注意的是这个分页与我们平时所做的页面分页是不同的,具体有啥不同,大家耐着性子往下看. 上篇博客讲到了cassandra的分页,相信大家会 ...

  3. 【转】HTML5 API --- 页面可见性改变(visibilitychange)事件

    [摘要:[本文属本创,若有转载,请说明出处http://blog.csdn.net/yl02520/article/] visibilitychange事情是扫瞄器新增加的一个事情,当扫瞄器的某个标签 ...

  4. jQuery基础学习(一)—jQuery初识

    一.jQuery概述 1.jQuery的优点      jQuery是一个优秀的JavaScript库,极大地简化了遍历HTML文档.操作DOM.处理事件.执行动画和开发Ajax的操作.它有以下几点优 ...

  5. ASP.NET自定义模块

    要创建自定义模块,类需要实现IHttpModule接口.这个接口定义了Init和Dispose方法. Init方法在启动Web应用程序时调用,其参数的类型是HttpContext,可以添加应用程序处理 ...

  6. Entity Framework细节追踪

    小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/shareto ...

  7. Java 中的 String 类常用方法

    字符串广泛应用在Java编程中,在Java中字符串属于对象,String 类提供了许多用来处理字符串的方法,例如,获取字符串长度.对字符串进行截取.将字符串转换为大写或小写.字符串分割等. Strin ...

  8. cooking构建工具报错MSBUILD :error MSB4132解决办法

    最近学习cooking构建工具的时候,在自己的笔记本上运行的好好的,项目在公司电脑上clone下来的时候,发现构建报错,逐条查错,试了好多方法也不行 最后在github上找到了答案,只是之前一直没找到 ...

  9. How to trace the Geolocation of network traffic

    A case about suspicious malware App. A forensic examiner capatured some pcap files and he'd to know ...

  10. java设计模式--基础思想总结--父类引用操作对象

    看设计模式的相关书籍也有一段时间了,一开始其实是抱着作为java三大框架的基础知识储备来学习的,不过到后来,才发现,在设计模式的一些准则装饰下,java的面向对象威力才真正地体现出来,后面的将会陆续地 ...