PHP 面向对象
在面向对象的程序设计(英语:Object-oriented programming,缩写:OOP)中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。
类 − 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。
对象 − 是类的实例。
成员变量 − 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可称为对象的属性。
成员函数 − 定义在类的内部,可用于访问对象的数据。
继承 − 继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
父类 − 一个类被其他类继承,可将该类称为父类,或基类,或超类。
子类 − 一个类继承其他类称为子类,也可称为派生类。
多态 − 多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
重载 − 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
抽象性 − 抽象性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
封装 − 封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。
构造函数 − 主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
析构函数 − 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做"清理善后" 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
PHP 命名空间(namespace)
在PHP 5.3中加入的,如果你学过C#和Java,那命名空间就不算什么新事物。 不过在PHP当中还是有着相当重要的意义。
PHP 命名空间可以解决以下两类问题:
用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
include/Site.php
<?php namespace inc; class Site{ var $url; var $title; function setUrl($par){ $this -> url = $par; } function getUrl(){ echo $this -> url.PHP_EOL; } function setTitle($par){ $this -> title = $par; } function getTitle(){ echo $this->title.PHP_EOL; } }
test.php
<?php namespace inc; header('Content-Type: text/html; charset=utf-8'); require 'include\Site.php'; $taobao = new Site; $baidu = new Site; //调用成员函数,设置标题和URL $taobao->setTitle('淘宝'); $baidu->setTitle('百度'); $taobao->setUrl('www.taobao.com'); $baidu->setUrl('www.baidu.com'); //调用成员函数,获取标题和URL $taobao->getTitle(); $taobao->getUrl(); $baidu->getTitle(); $baidu->getUrl();
效果图:
相关推荐
- **命名空间**:解释了如何使用命名空间来组织代码,以及命名空间的作用。 - **自动加载**:介绍了如何配置自动加载规则以自动加载类文件。 - **Traits引入**:解释了如何使用Traits来复用非继承的代码片段。 - **...
TP5引入了更多的面向对象特性,如命名空间、自动加载、注解等,使得代码结构更清晰,降低了开发难度。同时,TP5内置了强大的路由、模型、视图、控制器以及数据库操作等功能,使得开发Web应用变得更加便捷。在本管理...
学习ThinkPHP5.0之前,需要对面向对象和命名空间有一个基本的理解,如果对PHP相关基础知识还不熟悉,建议先去PHP手册进行学习。ThinkPHP5.0的目录结构遵循MVC(模型-视图-控制器)架构,开发者需要根据MVC的逻辑来...
而TP5.0则是较大的升级,引入了更多现代Web开发的特性,如命名空间、注解、依赖注入等,同时也优化了性能和兼容性。 2. **Yii**: Yii是另一个高性能的PHP框架,基于组件设计,强调代码复用和面向对象编程。Yii2.0...
ThinkPHP5(简称TP5)是基于PHP语言的轻量级MVC框架,它提倡简洁、快速、面向对象的开发方式。TP5提供了一系列的便利功能,如自动路由、模型操作、视图模板等,极大地简化了Web应用的开发流程。其核心特性包括: 1....
TP5还引入了更多的面向对象特性,如命名空间、依赖注入等。 3. **B2C电商平台**:B2C指的是商家直接面向消费者进行销售的商业模式,常见的如亚马逊、淘宝等。这类平台需要具备商品展示、购物车、订单处理、支付接口...
同时,tp5支持命名空间、自动加载、依赖注入等面向对象的特性,增强了代码的组织和管理。 3. Composer集成:虽然描述中提到有用户在安装时遇到问题,但ThinkPHP5.1本身是支持Composer的。Composer是PHP的依赖管理...
提供了深入的讲解,如不同路由模式的定义、命名空间和自动加载的设置、以及如何引入 Traits 来简化代码复用。 ThinkPHP 5.0的MVC架构支持多层设计,包括控制器、模型、视图的分离,以及请求处理的生命周期。在控制...
TP5引入了更多的面向对象特性,如命名空间、依赖注入和中间件,使得代码更加模块化和易于维护。 Vue.js是另一个重要的技术元素,它是一个渐进式的JavaScript框架,用于构建用户界面。Vue的核心库专注于视图层,易于...
- 直接实例化:`$goods = new 命名空间 GoodsModel();` - 使用D()方法:`$goods = D('模型标志');` - 使用M()方法:`$obj = M();` 和 `$obj = M('数据表标志');` - D()和M()方法在3.1.3版本中是简化new操作的...
此外,还有其他方法如`find()`、`save()`、`delete()`等,它们构成了TP的ORM(对象关系映射)功能,方便开发者以面向对象的方式处理数据库操作。 总结起来,理解TP框架中的数据库操作,包括配置连接、Model的概念、...
包括但不限于SQL文件的管理、版本控制系统Git的搭建、PHP面向对象思想的实战经验,以及面向对象编程中的命名空间、继承、方法封装、构造函数和析构函数的使用。这些是使用ThinkPHP5进行开发所必备的技能。 在实战...
ThinkPHP 5.x版本引入了更多的面向对象设计原则,增强了性能和安全性。 【jQuery】 jQuery是一个快速、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作和Ajax交互。jQuery的核心功能包括选择器...
1. 命名空间与自动加载:TP5全面引入了PHP的命名空间机制,使得代码更加模块化,同时利用Composer的自动加载功能,简化了类库的引入过程,提高了代码的可维护性。 2. MVC模式:遵循Model-View-Controller的设计模式...
这个版本的Thinkphp引入了更多的面向对象设计,支持命名空间,以及增强的路由和中间件系统,使得代码组织更加清晰,提高了开发效率。此外,它还引入了Composer支持,便于依赖管理,增强了项目的可维护性。 在...
- **技术特性**:支持最新的PHP特性,如命名空间、 Traits 引入等;采用Composer作为依赖管理工具;针对API开发进行了大量优化。 #### 安装与配置 - **安装**:通过Composer进行ThinkPHP框架的安装。 - **开发规范*...
1. ThinkPHP6框架:RXThinkCMF_TP6_PRO是基于ThinkPHP6构建的,这是一个流行的、开源的PHP框架,以其MVC(模型-视图-控制器)架构、面向对象的设计模式和丰富的内置功能受到广泛欢迎。ThinkPHP6引入了更多的现代PHP...
ThinkPHP 5.0是一款基于PHP的开源框架,它遵循简洁、快速和面向对象的设计原则,旨在提高开发效率和代码质量。在5.0版本中,ThinkPHP引入了许多新特性,如: 1. **快速上手**:提供了更加友好的命令行工具,支持...
2. **类库与API**:.NET Framework提供了丰富的类库,这部分可能会详细讲解如何使用System.Collections、System.IO等常用命名空间,以及.NET中的数据结构和算法。 3. **面向对象编程**:此部分深入讨论面向对象设计...