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面向对象类
函数只能面向过程,来回互相调用后顺序执行, 简单的编码项目,还能应付的过来, 复杂的大型项目,调用多了,就会乱. 如何才能不乱呢,可尝试下, 面向对象类的概念, 将现实世界的事物抽象成对象,将现实世界 ...
随机推荐
- Redis集群错误
部署Redis集群时出现如下错误: >>> Creating cluster>>> Performing hash slots allocation on 9 no ...
- 对java高级程序员有益的十本书
英文原文:http://www.programcreek.com/2013/08/top-books-for-advanced-level-java-developers/ java语言是当今最受欢迎 ...
- hive 实现类似 contain 包含查询
如何用hive sql 实现 contain 查询? 需求:判断某个字符串是否在另一个字符串中? 方法: 可以自定义函数,但是用正则匹配regexp更方便 代码如下: 首先,查看regexp正则函数的 ...
- Sql递归关联情况,With作为开头条件。
with Test_Recursion(Id,ParentId)AS(select Id,ParentId from [V_KPI_DetailsActivities] where ParentId ...
- JS学习笔记8_错误处理
1.错误处理语法:(js没有异常exception一说,都是错误error) try{ //throw new Error(msg); //throw '错误'; //throw false; //t ...
- 彻底卸载Oracle database 12c教程
1.WIN+R,然后输入regedit,回车:2.在注册表中,进入目录:\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,删除所有以oracl ...
- Spring学习笔记3——消息队列(rabbitmq), 发送邮件
本节的内容是用户注册时,将邮箱地址先存入rabbitmq队列,之后返回给用户注册成功:之后消息队列的接收者从队列中获取消息,发送邮件给用户. 一.RabbitMQ介绍 如果之前对rabbitm ...
- Vue2.5开发去哪儿网App 城市列表开发之 Vuex实现数据共享及高级使用
一,数据共享 1. 安装: npm install vuex --save 2. 在src目录下 新建state文件夹,新建index.js文件 3. 创建一个 store import Vue f ...
- Vue2.5开发去哪儿网App 第五章笔记 下
1. 多个元素或组件的过渡 多个元素的过渡: <style> .v-enter,.v-leace-to{ opacity: 0; } .v-enter-active,.v-leave-ac ...
- 3DMax——室内设计:墙体+吊顶
1.导入CAD平面图 2.将导入的平面图全部选中→颜色设置为其他颜色→设置为组(设置为组,是为了后期选材质方便) 3.选中图形,选择移动工具,输入坐标为0,右键选择冻结当前选择 4.右键“角度捕捉切换 ...