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面向对象类
函数只能面向过程,来回互相调用后顺序执行, 简单的编码项目,还能应付的过来, 复杂的大型项目,调用多了,就会乱. 如何才能不乱呢,可尝试下, 面向对象类的概念, 将现实世界的事物抽象成对象,将现实世界 ...
随机推荐
- 完美融合 nextjs 和 antd
相信大家在使用nextjs的时候,难免遇到一些坑.其实可能大部分原因在于 nextjs 做了很多封装,我们可能不能第一时间搞清楚包括它相关的所有配置,比如其中的webpack配置.我前面也写过 SSR ...
- 源自KPI交谈的思考
说明白一件事情不容易 前言 跟领导谈及下半年KPI的时候,问我什么打算/计划,在交谈过程中,有几个有意思的点 问题 Q: 目标是hold住服务端,那么怎么样才算hold住服务端? Q: 如何推动别人去 ...
- C#单例类的实现
C#单例类的实现 单例类保证一个类全局仅有一个实例,并提供一个全局访问点,由于只能生成一个实例,因此我们必须把构造函数设为私有函数以禁止他人创建实例. 实现1:懒汉式,线程不安全 该实现没有额外开销, ...
- WPF 分享一种背景动画效果
今天看微软的一个Samples,发现一个蛮好玩的背景样式,如下图所示: 风格比较卡哇伊. <Window x:Class="WPFSamplesTest.MainWindow" ...
- UWP 查找模板中的控件
这个标题我也不知道咋起,意思说一下你就明白. 1. 对官方控件的模板进行定制修改,以满足多样化需求,还有漂亮的UI 比如ListView,GridView等. 2. 在设计的情况下并没有这个控件,而在 ...
- 背水一战 Windows 10 (52) - 控件(集合类): ItemsControl - 自定义 ItemsControl, 自定义 ContentPresenter
[源码下载] 背水一战 Windows 10 (52) - 控件(集合类): ItemsControl - 自定义 ItemsControl, 自定义 ContentPresenter 作者:weba ...
- 爬虫:Scrapy5 - 选择器Selectors
当抓取网页时,常见的任务是从HTML源码中提取数据.现有的一些库可以达到这个目的: BeautifulSoup lxml Scrapy 提取数据有自己的一套机制.它们被称作选择器(seletors), ...
- nginx和tomcat访问图片和静态页面的配置方法
生产环境下,有时候需要访问图片,正常需要应用ftp.nginx等配套使用,但是有时候为了简化,可以用以下的两种简单的访问,说实话,就是为了偷懒,但是效果是能有的,这就行了,所以今天做这个简化版的方便大 ...
- IIS 站点部署多级域名
当站点的规模达到一定程度,往往会对业务进行拆分,部署到一台服务器的不同站点,,而一个域名(顶级域名)只能绑定一个站点(核心站点),这个时候就通过给顶级域名创建子域名的方式(理论上一个顶级域名可以绑定5 ...
- TFS2018环境搭建一单实例安装(适用于小型团队)
1.服务器配置 阿里云 单核CPU,2GB的RAM,SSD硬盘,安装TFS实例 TFS2018要求SQL Server 2016 (minimum SP1)以上.其要求有以下几点: (1).安装SQL ...