<?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(); //类的封装: ?>

最新文章

  1. spring相关jar包的含义
  2. Javascript.Reactjs-5-prop-validation-and-proptypes
  3. linux启动jmeter,执行./jmeter.sh报错解决方法
  4. [转]SQL注入攻防入门详解
  5. 升级Flash Builder 4.7中的AIR SDK
  6. uva 993 Product of digits (贪心 + 分解因子)
  7. 【html】【11】函数名称约束规范
  8. Javascript参数传递中值和引用的一种理解
  9. Ueditor实现自定义conttoller请求或跨域请求
  10. JAVA基础第五章-集合框架Map篇
  11. linux shell 命令集锦
  12. Centos 7 磁盘阵列配置介绍(RAID)
  13. shell丢弃信息
  14. [转]cximage双缓冲绘图 .
  15. 第十届Mockplus ▪ UXPA用户体验西南赛区决赛成功举行
  16. EditPlus 4.3.2463 中文版已经发布(10月16日更新)
  17. 【转】Java Spring AOP详解
  18. Oracle数据库基本操作(一) —— Oracle数据库体系结构介绍、DDL、DCL、DML
  19. 关于浏览器对静态HTML页面的缓存问题
  20. 使用LeakCanary进行内存泄漏追踪

热门文章

  1. find的用法(完整)
  2. centos下网口vlan设置
  3. FastReport套打 和连续打印
  4. Android-Java构造代码块&amp;构造方法隐式三行
  5. hdu 1.2.7
  6. 托管博客到coding或者github
  7. 分组,命名分组,url的命名和反向解析
  8. cad2014卸载/安装失败/如何彻底卸载清除干净cad2014注册表和文件的方法
  9. (干货) Android实现ImageVIew多点触控及双击缩放
  10. lucene使用与优化