当前位置: 首页 > news >正文

PHP语言 -- 面向对象

1.定义类

class Ren
{
public $name; //定义成员变量
var $sex;


function Say()  //定义方法
{
echo "这个人在讲话";
}
}

2.实例化

$ren = new Ren();  //实例化

$ren->name="张三"; //调用成员 变量
$ren->sex="女";

$ren->Say();//调用方法

3.this引用

class Ren
{
public $name;
public $sex;

public function Say()
{
echo $this->name."这个人在说话";  //this 代表对象 不是类
}
}

$ren= new Ren();

$ren->name="张三";

$ren->Say();

4.构造函数

class Ren
{ 
public $name;
public $sex;
   
function __construct($name,$sex)  //构造函数
{
$this->name=$name;
$this->sex = $sex;
}

}

$ren = new Ren("李四","男");

5.析构函数

function __destruct()  //销毁对象 施放内存,关闭连接等  自动执行
{
echo "该对象马上要销毁了";
}

 6.封装

class Ren
{
private $name; //将成员变量 私有
private $sex;
private $age;

//封装:访问成员变量的方法
    public function SetAge($age)
    {
        if($age > 18 && $age <80)
        {
        $this->age = $age;
        }
    } 

//封装:简便方法赋值 ,自动调用
   public function __set($name,$value)
    {
    if($name=="age")
    {
        if($value>18 && $value <80)
        {
        $this->$name = $value;
        }
    }
    else
    {
    $this->$name = $value;
    }
    }  
//封装:简便方法获取值
    public function __get($name)
    {
    return $this->name;
    } 
    
}

$ren = new Ren("李四","男")

$ren->name = "什么";    

echo $ren->sex;    

7.继承

class Student extends Ren
{
//父类方法重写
function Say()
{
 parent::Say();  //调用父类方法 
 echo "这是子类的方法";
}
}

8.关键字

final  用来修饰类 ,如果把一个类定义成final类,该类就无法被继承了

final class Ren
{
}

static 静态的

class Student
{
static public $class;//定义静态变量
static function Say() //定义静态方法
{
echo "aaaa";
}
}

Student::$class = "hello";//调用静态变量

echo Student::$class

Student::$class;//调用静态方法

const 在类里定义常量

const ss=3.14; //定义常量

echo Studen::ss

 9.多态

1).必须要发生在继承下

2).子类对父类的方法进行重写

3).在PHP中多态表现的不明显

 

10.tostring()方法,系统自带,用处不是很大,在输出对象时,返回对象的信息

function __tostring()

{

  return "这是个类";

}

 

10.克隆对象  关键字:clone

$ren = new Ren();

$r1 = clone $ren;
function __clone()
{
  $this->age=18; //$this 找的是副本
}

 11.加载类

include("文件路径"); 

require_once("文件路径");

include "文件路径";

require_once "文件路径";

 

转载于:https://www.cnblogs.com/yifangtongxing/p/5353281.html

相关文章:

  • spring 中IOC和aop的理解
  • keepalived which time exec track script , notify script when vrrp transition
  • 代理模式
  • java aopalliance-1.0.jar这个包是做什么用的?
  • Android客户端采用Http 协议Post方式请求与服务端进行数据交互(转)
  • Distributed3:SQL Server 创建分布式数据库
  • C#-属性
  • 2的幂的合并运算实例
  • 【curl】cookie的分隔符
  • 从零开始学数据库(一)——安装、启动、进入、创建表、检查表结构、类型说明、更改表项名、插入值...
  • Ruby之基本数据类型(三)
  • 机器学习:eclipse中调用weka的Classifier分类器代码Demo
  • 线程同步工具(一)控制并发访问资源
  • Solr schema编写指导
  • Azkaban的Web Server源码探究系列14:创建Project
  • 【5+】跨webview多页面 触发事件(二)
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 03Go 类型总结
  • httpie使用详解
  • Java IO学习笔记一
  • java第三方包学习之lombok
  • js算法-归并排序(merge_sort)
  • linux安装openssl、swoole等扩展的具体步骤
  • Sass Day-01
  • select2 取值 遍历 设置默认值
  • 翻译:Hystrix - How To Use
  • 关于字符编码你应该知道的事情
  • 前嗅ForeSpider中数据浏览界面介绍
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 与 ConTeXt MkIV 官方文档的接驳
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • #WEB前端(HTML属性)
  • (04)odoo视图操作
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (简单) HDU 2612 Find a way,BFS。
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (六)软件测试分工
  • (转载)(官方)UE4--图像编程----着色器开发
  • (转载)Linux 多线程条件变量同步
  • *2 echo、printf、mkdir命令的应用
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET6 命令行启动及发布单个Exe文件
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • .NET中统一的存储过程调用方法(收藏)
  • /bin/bash^M: bad interpreter: No such file or directory
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504