PHP面向对象——类
<?php
/**
* Created by PhpStorm.
* User: 63448
* Date: 2018/5/6
* Time: 9:44
*/
//类:相似的数据和数据操作的封装 class
// 成员量:普通的量加上一定的修饰就变成了成员量 public,protected,private
// 成员方法:普通的函数,加上一定的修饰,放入到类中就变成了成员方法.
// 实例化:类创建特例的过程(实例化一个对象 new)
// 对象: 类的特例或者实例 object
// 认识类 -> 类的封装 -> 类的实例化 -> 对象的认识 -> 操作对象 /**
* 实例化类(instance):
* 对象变量 = new 类名;
* 或者 对象变量 = new 类名();
* 对象变量: 普通的变量,只不过他的类型是对象类型
* $object = new myClass;/new myClass();
*/
class MyClassss{}//声明类的时候是没有小括号的(区别于函数)
$obj = new MyClassss;//类的实例化
if(Class_exists("MyClassss")){
if(is_object($obj)) echo "obj is object";//is_object():判断某个变量是否是对象;
else echo "obj isnot object";
}else{
echo "myclass isnot exists";
}
echo "<hr/>"; /**
*成员变量:
普通的变量放入到类中就变成了成员量(类的属性)
格式:修饰符 变量名[=值];
变量定义格式:修饰符 变量;
变量的赋值:修饰符 变量名 = 值;
修饰符: public : 公有的,在类内可以使用,在类外也可以使用,等价于 JS 的 var
Public $height = 100;
* 成员方法:
普通的函数放入到的类中就变成了成员方法
格式:
修饰符 function 方法名(参数){
返回值
}
*/
// 类使用步骤
class MyClass{
public $age = 100;
}
$obj = new MyClass;
echo $obj -> age ; // 100
$obj -> age = 105; // 105
echo $obj -> age;
// // 对象操作的无关性
$obj1 = new MyClass();
echo $obj1 -> age; // 100
$obj1 -> age = 200;
echo $obj1 -> age; // 200
echo $obj -> age; // 105
echo "<br>----------------------------------------<br>"; /**
* 类外的使用:对象名 -> 变量名(无$)-- $obj -> checklogin()
类内调用:$this -> 变量名(无$) 伪变量-- $this -> tag
伪变量:
$this :对象本身
3) 对于某个对象的操作,对于另外的对象没有任何影响,也就是所谓的对象无关性
*/ 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"; echo "<br>----------------------------------------<br>"; /**
* 1、::叫做作用域操作符
* 2、常量在声明的时候必须赋值!
* 3、声明常量的过程中,不需要其他的修饰符
*/
class MyClasss{
const HOST="localhost";//类中恒定不变的量格式:Const 大写的常量名 = 值;
const USER="root";
public function show(){
echo MyClasss::HOST;
echo self::USER;//类内的调用: self (指本类) Self::常量名
}
}
echo Myclasss::HOST.Myclasss::USER;//类外调用:类名 :: 常量名
echo "<hr/>";
$obj = new MyClasss;
$obj -> show(); //类的封装: ?>
PHP面向对象——类的更多相关文章
- Php面向对象 – 类常量
Php面向对象 – 类常量 类常量:类中,保存执行周期内,不变的数据. 定义: constkeyword const 常量名 = 常量值 样例: class Student { public $st ...
- C语言利用 void 类型指针实现面向对象类概念与抽象。
不使用C++时,很多C语言新手可能认为C语言缺乏了面向对象和抽象性,事实上,C语言通过某种组合方式,可以间接性的实现面对对象和抽象. 不过多态和继承这种实现,就有点小麻烦,但是依然可以实现. 核心: ...
- Python学习(七)面向对象 ——类和实例
Python 面向对象 —— 类和实例 类 虽然 Python 是解释性语言,但是它是面向对象的,能够进行对象编程.至于何为面向对象,在此就不详说了.面向对象程序设计本身就很值得深入学习,如要了解,请 ...
- php面向对象类中常用的魔术方法
php面向对象类中常用的魔术方法 1.__construct():构造方法,当类被实例化new $class时被自动调用的方法,在类的继承中可以继承与覆盖该方法,例: //__construct( ...
- Java面向对象-类与对象
Java面向对象-类与对象 类与对象的关系 我们通俗的举个例子,比如人类是一种类,张三这个人就是人类的具体的一个个体,也就是java中的对象:这就是一个类与对象的关系: 类的定义 下面看实例 类的创建 ...
- Python之面向对象类和对象
Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object): """ 类里定义一类事物共同的技能. 可以是变量,也可是函 ...
- C语言利用 void 类型指针实现面向对象类概念与抽象
不使用C++时,很多C语言新手可能认为C语言缺乏了面向对象和抽象性,事实上,C语言通过某种组合方式,可以间接性的实现面对对象和抽象. 不过多态和继承这种实现,就有点小麻烦,但是依然可以实现. 核心: ...
- oopday01(面向对象-类&private&this)
面向对象基本概述.封装 01_面向对象(面向对象思想概述) * A:面向过程思想概述 * 第一步 * 第二步 * B:面向对象思想概述 * 找对象(第一步,第二步) * C:举例 ...
- Java面向对象——类的成员
Java面向对象——类的成员 摘要:本文主要介绍了类的常见成员. 属性 属性称为成员变量,一般来讲不用赋值,因为有默认值,另外显式赋值没有意义会导致所有由此类创建对象都是此值. 默认值 Boolean ...
- 《自拍教程36》段位三_Python面向对象类
函数只能面向过程,来回互相调用后顺序执行, 简单的编码项目,还能应付的过来, 复杂的大型项目,调用多了,就会乱. 如何才能不乱呢,可尝试下, 面向对象类的概念, 将现实世界的事物抽象成对象,将现实世界 ...
随机推荐
- Scala_控制结构
控制结构 if条件表达式 val x = 6 if (x>0){ println("This is a positive number") }else if(x== ...
- fresco加载本地图片、gif资源
首先 来看看fresco 是个神马东西 https://github.com/facebook/fresco 这个是fresco的一个官方gifhub 官网为http://frescolib.org/ ...
- Git 安装 windows && linux
一.安装: windows下安装Git: 1.下载Git:https://git-scm.com/download/win 2.安装Git:默认安装,一直回车 Linux下安装Git: yum安装: ...
- CxGrid筛选自动添加百分号和默认旧的滚动条样式
CxGrid筛选自动添加百分号和默认旧的滚动条样式 2018-10-29 Delphi 约 693 字 预计阅读 2 分钟 文章目录 cxGrid支持使用like过滤时自动添加百分号 DevExpr ...
- 在Delphi中处理word文档与数据库的互联 1
在Delphi中处理word文档与数据库的互联 ---- 目前,Delphi被越来越多的人选中作为MIS系统开发中的前台工具.在以Delphi为前台,一些大型数据库为后台的MIS系统中,图形的处理不可 ...
- Linux-系统相关命令及配置文件
1.查看/配置主机名 # 查看主机名 hostname # 配置主机名(临时) hostname <HOSTNAME> # 配置主机名(永久) hostnamectl set-hostna ...
- nips 2016 吴恩达
一年一度的 NIPS 又来了.今年举办地是笔者最爱的欧洲城市巴塞罗那.阳光沙滩配学术,确实很爽.这次的会议的第一天开场的大部分时间安排给了 tutorial.其中人数爆满的依旧是吴恩达(AndrewN ...
- js获取select标签选中的值及文本
原生js方式: var obj = document.getElementByIdx_x(”testSelect”); //定位id var index = obj.selectedIndex; // ...
- java解决共享资源竞争
由于多线程的实现,在运行一个程序的时候可能会有很多的线程在同时运行,但是线程的调度并不是可见的,所以不会知道一个线程什么时候在运行,比如说 你坐在桌子前手拿着叉子,正要去叉盘中的最后一片食物,当你的叉 ...
- 通过JS拦截 pushState 和 replaceState 事件
history.pushState 和 history.replaceState 可以在不刷新当前页面的情况下更改URL,但是这样就无法获取通过AJAX得到的新页面的内容了.虽然各种HTML5文档说 ...