专栏首页吾爱乐享php学习之类与对象基础知识,适合初学者

php学习之类与对象基础知识,适合初学者

小案例-快速入门

//打印张三对应的年龄和性别

  •  最初的解决方法:

定义三个变量,一一打印输出

  • 数组的解决方式: 更进一步,只定义一个变量,减少内存 $arr= array(‘name’=>’张三’, ‘age’=>23, ‘sex’=>’男’);
  • 用面向对象方式解决:

分析:

  1. class 是一个关键词,表示这个是一个类,固定形式
  2. ZhangSan 这是一个定义的类名,自定义的,要符合类的规范
  3. public $name 是一个成员属性,定义在类中的变量就称为成员属性
  4. public 是访问修饰符,是用来控制成员属性的访问范围,除了public还有protected和private
  5. $zhangsan = new ZhangSan();  这是实例化对象,$zhangsan 就是一个对象,new是个关键词,表示新创建的一个对象
  6. $zhangsan->name=’张三’ 表示给一个成员属性赋值,->这是对象运算符
  7. 查看对象情况可以用var_dump()函数,获取具体的对象中的某个值,echo $zhangsan->name;

 类与对象的关系

  • 介绍

在面向对象中,最重要的概念就是类和对象,比如,一个人类,每一个人都具有一定的属性和行为方法,这这些属性和方法具体到每一个人身上就是一个对象,一个大类就是有无数个对象组成

定义一个人类:

说明:

  1. 一个类可以创建多个对象
  2. 不同的对象的后面的编号不一样,是系统自动分配的
  3. 类的命名规范:驼峰命名比如$ZhangSan

理解类如对象

  1. 类是抽象的,代表的是一类事物,比如人类、猫类、动物类
  2. 对象是具体的,实际存在的,是一个具体的事物,比如具体的一个人,一只猫、一只狗
  3. 类可以看作是一个模板,对象则是类的一个具体的实例

类的定义

class 类名{

访问修饰符 成员属性1;

访问修饰符 成员属性2;

…….

}

成员属性

定义:类的变量成员叫做属性,或者叫做字段、特征,在本文挡中称为属性, 属性声明是由关键词public、protected、private开头。然后跟一个普通的变量声明组成,属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指php脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值

简言之:就是类的一种属性,属性的值符合全部的数据类型(8种数据类型)

  • 对象创建

对象创建有两种方式,一个是类名后面加括号,另一个就是不加

  1. $对象名 = new 类名();
  2. $对象名 = new 类名;
  • 对象访问

$对象名->属性名;

->对象运算符

说明:

  1. 在使用默认构造方法时,创建对象的 new 类名()和new类名是等价的

对象传递方式

第一种传递方式:$p2 = $p1;

说明:

  1. 所有的代码必须加载到内存才能被执行
  2. 当把一个对象赋给另一个变量时,也是值的拷贝。。指向的是同一个标识符

第二种传递方式:$p2 = &$p1;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • React Native+React Navigation+Redux开发实用教程

    为了帮助大家快速上手在React Native与Redux开发,在这本文中将向大家介绍如何在React Native中使用Redux?,以及一些必备基础以及高级...

    CrazyCodeBoy
  • React Native+Redux开发实用教程

    为了帮助大家快速上手在React Native与Redux开发,在这本文中将向大家介绍如何在React Native中使用Redux?,以及一些必备基础以及高级...

    CrazyCodeBoy
  • 带你快速掌握Flutter的视图(Widgets)

    在这篇文章中,将向大家分享Flutter开发中的一些视图(Widgets)相关的一些知识和经验,主要包含:

    CrazyCodeBoy
  • 面试官,ThreadLocal 你别再问了!

    来源:juejin.im/post/5d427f306fb9a06b122f1b94

    用户1516716
  • Qt创建及使用动态链接库(一)

    2、显示链接DLL,调用DLL中类对象、成员函数。(通过对象即可实现类成员函数的调用)

    Sindsun
  • Flutter Http网络操作实用教程

    在这篇文章中,将向大家分享Flutter网络操作的一些实用知识和技巧,包括如何用Http库做get请求?、如何用Http库做post请求?、如何将Respons...

    CrazyCodeBoy
  • EL表达式与JSTL

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。

    Masimaro
  • sharding-jdbc4.0使用方式

    Sharding-JDBC是ShardingSphere的第一个产品,也是ShardingSphere的前身。 它定位为轻量级Java框架,在Java的JDBC...

    用户2603479
  • 「快速上手Flutter开发系列教程」之线程和异步UI

    Dart有一个单线程执行模型,支持Isolate(一种在另一个线程上运行Dart代码的方法),一个事件循环和异步编程。除非你自己创建一个 Isolate ,否则...

    CrazyCodeBoy
  • 两分钟带你掌握Flutter的StatelessWidget与StatefulWidget

    在这篇文章中,将带着大家一起认识什么是StatelessWidget?,什么是StatefulWidget?,以及StatefulWidget和Stateles...

    CrazyCodeBoy

扫码关注云+社区

领取腾讯云代金券