本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。
2021年10月24日 在Java中,亦可用访问指示符判断出一个库内的哪些类可由那个库的用户使用。若想一个类能由客户程序员调用,可在类主体的起始花括号前面某处放置一个public关键字。它控制着客户程序员是否能够创建属于这个类的一个对象。
面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持。如何使用OOP的思想来进行PHP的高级编程,对于提高PHP编程能力和规划好Web开发构架都是非常有意义的。下面我们就通过实例来说明使用PHP的OOP进行编程的实际意义和应用方法。
我们通常在做一个有数据库后台的网站的时候,都会考虑到程序需要适用于不同的应用环境。和其他编程语言有所不同的是,在PHP中,操作数据库的是一系列的具体功能函数(如果你不使用ODBC接口的话)。这样做虽然效率很高,但是封装却不够。如果有一个统一的数据库接口,那么我们就可以不对程序做任何修改而适用于多种数据库,从而使程序的移植性和跨平台能力都大大提高。
我们通常在做一个有数据库后台的网站的时候,都会考虑到程序需要适用于不同的应用环境。和其他编程语言有所不同的是,在PHP中,操作数据库的是一系列的具体功能函数(如果你不使用ODBC接口的话)。这样做虽然效率很高,但是封装却不够。如果有一个统一的数据库接口,那么我们就可以不对程序做任何修改而适用于多种数据库,从而使程序的移植性和跨平台能力都大大提高。
2021年09月17日
2021年09月17日 继承作为面向对象的三个重要特性的一个方面,在面向对象的领域有着及其重要的作用,好像没听说哪个面向对象的语言不支持继承。 继承是PHP5面象对象程序设计的重要特性之一,它是指建立一个新的派生类,从一个或多个先前定义的类中继承数据和函数,而且可以重新定义或加进新数据和函数,从而建立了类的层次或等级。说的简单点就是,继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
这是 Airbnb 的 Ruby 代码风格指南,指南灵感来源于 Github 的指南 和 [Bozhidar Batsov 的指南][bbatsov-ruby]。
2021年09月18日
Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的高级程序设计语言,Java 当初诞生的时候,正是上世纪 90 年代末互联网兴起的时代,在企业应用开发中存在几个问题,一是以 IBM,SUN 和 HP 的 UNIX 服务器和大型机为主的异构环境,C/C++ 和其它语言编写的应用跨平台支持和移植比较困难,二是基于 CGI 和其它技术的网络应用从开发效率和功能性角度来看都不够理想,三是 C/C++在当时是主流编程语言,门槛高、易出错、对经验要求很高,而 Java 简单易学、安全可靠,并且一次编写到处运行,再加上 Applet、Servlet 和 JSP 技术,解决了这些痛点,满足了当时互联网程序设计和运维的要求,伴随着互联网的发展一下子就脱颖而出并长期占据主流地位。
2021年09月29日
斯坦福教授、Tcl 语言发明者 John Ousterhout 的著作《A Philosophy of Software Design》,自出版以来,好评如潮。按照 IT 图书出版的惯例,如果冠名为“实践”,书中内容关注的是某项技术的细节和技巧;冠名为“艺术”,内容可能是记录一件优秀作品的设计过程和经验;而冠名为“哲学”,则是一些通用的原则和方法论,这些原则方法论串起来,能够形成一个体系。正如”知行合一”、“世界是由原子构成的”、“我思故我在”,这些耳熟能详的句子能够一定程度上代表背后的人物和思想。用一句话概括《A Philosophy of Software Design》,软件设计的核心在于降低复杂性。
2021年10月09日
在过去三年半的时间里,AngularJS已经成为世界上数十万程序员的领先开源JavaScript应用程序框架。 AngularJS的“1.x”版本已被广泛使用,并且变得非常受欢迎的复杂应用程序。 新的“Angular 2”也宣布了其最终版本。
2021年11月13日
2021年11月12日
TIPI项目是一个自发项目, 项目主要关注PHP的内部实现, 以及PHP相关的方方面面, 该项目包括《深入理解PHP内核》这本书,以及一些相关的PHP项目,例如一些PHP扩展及研究项目.
你可以联系以下作者
reeze http://reeze.cn reeze.xia@gmail.com
er http://www.zhangabc.com er@zhangabc.com
phppan http://www.phppan.com/ phppan.p@gmail.com
HonestQiao http://www.wapm.cn/ honestqiao@gmail.com
mengkang https://mengkang.net i@zhoumengkang.com
或者发给所有组员: team@php-internals.com
贡献者
感谢这些贡献者:https://github.com/reeze/tipi/contributors
你可以联系以下作者
reeze http://reeze.cn reeze.xia@gmail.com
er http://www.zhangabc.com er@zhangabc.com
phppan http://www.phppan.com/ phppan.p@gmail.com
HonestQiao http://www.wapm.cn/ honestqiao@gmail.com
mengkang https://mengkang.net i@zhoumengkang.com
或者发给所有组员: team@php-internals.com
贡献者
感谢这些贡献者:https://github.com/reeze/tipi/contributors
2022年12月04日 编程语言的实现是一门非常复杂的工程。包括语法实现,对象模型。流程结构等等的设计和实现。在面向对象语言中对象模型是尤为重要的,PHP的对象模型比较常规,和Java/C++类似。
2022年12月04日 SPL,PHP标准库(Standard PHP Library),从 PHP 5.0 开始内置的接口和类的集合,从 PHP5.3 开始逐渐成熟并成为内核组件的一部分。但是由于其文档的稀少以及推行的力度不够,导致较多的PHP开发人员对其不了解,甚至闻所未闻。
2022年12月02日 在维基百科中,对命名空间的定义是:命名空间(英语:Namespace)表示标识符(identifier)的上下文(context)。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。在编程语言中,命名空间是一种特殊的作用域,它包含了处于该作用域内的标识符,且本身也用一个标识符来表示,这样便将一系列在逻辑上相关的标识符用一个标识符组织了起来。函数和类的作用域可被视作隐式命名空间,它们和可见性、可访问性和对象生命周期不可分割的联系在一起。
2022年12月02日 对象是我们可以进行研究的任何事物,世间万物都可以看作对象。它不仅可以表示我们可以看到的具体事物,也可以表示那些我们看不见的事件等。对象是一个实体,它具有状态,一般我们用变量来表示,同时它也可以具有操作行为,一般用方法来表示,对象就是对象状态和对象行为的集合体。
在之前我们很多次的说到类,对于对象来说,具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,我们常常也说对象是类的实例。从对象的表现形式来看,它和一般的数据类型在形式上十分相似,但是它们在本质是不同的。对象拥有方法,对象间的通信是通过方法调用,以一种消息传递的方式进行。而我们常说的面向对象编程(OOP)使得对象具有交互能力的主要模型就是消息传递模型。对象是消息传递的主体,它可以接收,也可以拒绝外界发来的消息。
这一小节,我们从源码结构来看看PHP实现对象的方法以及其消息传递的方式。
在之前我们很多次的说到类,对于对象来说,具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,我们常常也说对象是类的实例。从对象的表现形式来看,它和一般的数据类型在形式上十分相似,但是它们在本质是不同的。对象拥有方法,对象间的通信是通过方法调用,以一种消息传递的方式进行。而我们常说的面向对象编程(OOP)使得对象具有交互能力的主要模型就是消息传递模型。对象是消息传递的主体,它可以接收,也可以拒绝外界发来的消息。
这一小节,我们从源码结构来看看PHP实现对象的方法以及其消息传递的方式。
2022年12月01日 在面向对象语言中,都会内置一些语言内置提供的基本功能类,比如JavaScript中的Array,Number等类,PHP中也有很多这种类,比如Directory,stdClass,Exception等类,同时一些标准扩展比如PDO等扩展中也会定义一些类,PHP中类是不允许重复定义的,所以在编写代码时不允许定义已经存在的类。
2022年11月30日 PHP中有一些特殊的函数和方法,这些函数和方法相比普通方法的特殊之处在于: 用户代码通常不会主动调用,而是在特定的时机会被PHP自动调用。在PHP中通常以""打头的方法都作为魔术方法, 所以通常不要定义以""开头的函数或方法。例如:autoload()函数, 通常我们不会手动调用这个函数, 而如果在代码中访问某个未定义的方法, 如过已经定义了autoload()函数,此时PHP将会尝试调用autoload()函数, 例如在类的定义中如果定义了construct()方法,在初始化类的实例时将会调用这个方法, 同理还有__destuct()方法。
2022年11月29日 面向对象的三大特性(封装、继承、多态),在前一小节介绍了封装,这一小节我们将介绍继承和多态的实现。
2022年11月29日 面向对象的三大特性(封装、继承、多态),其中封装是一个非常重要的特性。封装隐藏了对象内部的细节和实现,使对象能够集中而完整的描述并对应一个具体的事物,只提供对外的访问接口,这样可以在不改变接口的前提下改变实现细节,而且能使对象自我完备。除此之外,封装还可以增强安全性和简化编程。在面向对象的语言中一般是通过访问控制来实现封装的特性。
2022年11月29日 在上一小节,我们介绍了类的结构和声明过程,从而,我们知道了类的存储结构,接口抽象类等类型的实现方式。在本小节,我们将介绍类的成员变量和成员方法。首先,我们看一下,什么是成员变量,什么是成员方法。
类的成员变量在PHP中本质上是一个变量,只是这些变量都归属于某个类,并且给这些变量是有访问控制的。类的成员变量也称为成员属性,它是现实世界实体属性的抽象,是可以用来描述对象状态的数据。
类的成员方法在PHP中本质上是一个函数,只是这个函数以类的方法存在,它可能是一个类方法也可能是一个实例方法,并且在这些方法上都加上了类的访问控制。类的成员方法是现实世界实体行为的抽象,可以用来实现类的行为。
类的成员变量在PHP中本质上是一个变量,只是这些变量都归属于某个类,并且给这些变量是有访问控制的。类的成员变量也称为成员属性,它是现实世界实体属性的抽象,是可以用来描述对象状态的数据。
类的成员方法在PHP中本质上是一个函数,只是这个函数以类的方法存在,它可能是一个类方法也可能是一个实例方法,并且在这些方法上都加上了类的访问控制。类的成员方法是现实世界实体行为的抽象,可以用来实现类的行为。
2022年11月10日 面向对象编程中我们的编程都是围绕类和对象进行的。那在PHP内部类是怎么实现的呢?它的内存布局以及存储是怎么样的呢?继承、封装和多态又是怎么实现的呢?
前一页
后一页