<?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面向对象——类
原文地址:https://www.cnblogs.com/cp168168/p/9000222.html