很多站长朋友们都不太清楚php私有公有,今天小编就来给大家整理php私有公有,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php中的 public是什么意思?我是新人 2、 在PHP中有没有私有类或公有类这样说法的? 3、 PHP中private和public还有protected的区别 4、 3、 一个类的公共成员与私有成员有何区别 5、 PHP ASP.NET的较量 6、 php怎么理解这些个关键字啊,public;private;protect;final;static;const;我感觉这 php中的 public是什么意思?我是新人变量与方法的关键字public,private,protected
public表示公共的,既可以让子类使用,也可以支持实例化之后的调用,
protected表示的是受保护的,访问的权限是只有在子类和本类中才可以被访问到
private 表示的是私有,只能够是在当前的类中可以被访问到
在PHP中有没有私有类或公有类这样说法的?没有,并没有,完全没有,类的话只有抽象类,接口类,类这三种
PHP中private和public还有protected的区别public:声明方法和属性可以被随意访问。
Protected:声明的方法和属性只能被类本身和其继承子类访问。
private:只能被定义属性和方法的类访问。
private 是完全私有的,只有当前类中的成员能访问到.
protected 是受保护的,只有当前类的成员与继承该类的类才能访问.
protected的访问权介于public和private之间,实际上三者的区别就是权限问题,private和protected区别主要体现在其继承类的访问权限上,这些你可以自己编写一个程序,写个类,编译一下你就很清楚他们权限的区别了。
私有成员private member
只能被成员函数和类的友元访问
实行信息隐藏的类把其数据成员声明为private
被保护成员protected member
对派生类derived class 就像public 成员一样
对其他程序则表现得像private
3、 一个类的公共成员与私有成员有何区别公共成员与私有成员有何区别:
一、public(公共成员)
public,顾名思义,就是公开的数据信息,可以在程序中的任何位置(类内,类外),被其他类的对象调用,子类可以继承和使用父类中的公共成员。
二、private(私有成员)
被private关键字修饰的变量和方法,只能在所属类的内部被调用和修改,不可以在类外被访问,在子类中也不可以被访问。
相关概念:
PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程。
该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。PHP同时支持面向对象和面向过程的开发,使用上非常灵活。
经过二十多年的发展,随着php-cli相关组件的快速发展和完善,PHP已经可以应用在 TCP/UDP服务、高性能Web、WebSocket服务、物联网、实时通讯、游戏、微服务等非 Web 领域的系统研发。
以上内容参考:百度百科-php
PHP ASP.NET的较量PHP和ASP NET都可以构建复杂的Web应用程序(例如电子商务站点 Intranet和企业门户) 但两者之间却存在若干重要差别 与PHP不同 ASP NET并不是一种语言或分析器 而是Microsoft NET Framework中的一组用于构建Web应用程序和XML Web Service的技术 同PHP一样 Microsoft ASP NET页面在服务器上执行并生成标记(例如HTML WML或XML) 标记将发送给桌面应用程序或移动应用程序 但不同的是 ASP NET为开发Web页面提供了强大的 面向对象的以及由事件驱动的编程模型 同时仍保留了PHP开发人员所习惯的那种简单性
PHP与ASP NET比 ASP NET应用程序是基于强大的面向对象编程(OOP)模式 而不是基于脚本模式 这样便可以获得更为严谨的OOP功能 例如继承 封装和反射 虽然大多数基本的简单操作可以轻松地从PHP转换到ASP NET 但要转换更为复杂的应用程序却并不这么简单 这需要仔细的规划和考虑 并采用更符合OOP的方法
本文假设读者具有PHP方面的经验 并且对编程和软件开发有着基本了解 本文首先从代码方面对两者的基础体系结构的差别进行简单比较 并简要介绍一下OOP开发模型 然后比较两者的功能 最后将使用PHP和ASP NET开发Web应用程序时的语法和常见任务作以对比
注意 如果您希望跳过有关迁移的详细信息 而只想尝试ASP NET的使用 则可以直接跳到建议的后续操作部分
PHP ASP NET体系结构对比
阅读完本文后 通过比较语法和语言 您将了解PHP和ASP NET是很相似的 它们具有类似的功能和语法 但是 从更基本的体系结构层面来讲 PHP与ASP NET却有着很大差别 PHP基于独立于平台的处理器/引擎 该处理器/引擎用于分析PHP脚本 提供数据库连接 符合Internet协议以及提供大多数Web应用程序平台所常见的众多其他任务
ASP NET是基于一系列技术(如CLR)构建的框架 提供了大量以很好的方式组织的类库 这些类库可满足要在Web应用程序中使用的大多数功能的需要 您还可以轻松地创建各种组件 对该框架进行扩展
虽然PHP也提供了类似的功能(例如PEAR库) 但PHP和ASP NET并非完全相同 因为ASP NET框架是完全基于OOP模式和OOP概念构建的 而PHP则不然 这种差别在PHP和ASP NET中类和对象的访问方式方面表现得犹为明显
PHP ASP NET中的面向对象编程
虽然PHP和ASP NET都为应用程序开发提供了OOP模式 但它们对各种OOP概念(例如封装和多态)的支持却存在差别 例如 PHP仅支持部分封装(例如 支持在类中声明方法和字段)和部分多态(没有重载和抽象) 此外 由于PHP的类中不存在私有(private) 公有(public)或受保护(protected )函数等概念以及重载 因此PHP也不支持这些概念及其访问 OOP纯粹主义者可能会说 ASP NET以及各种语言也没有完全支持OOP模式中的所有概念 对于使用OOP的大多数语言(如C++和Java)来说 情况确实如此
这既有积极的一面 也有消极的一面 消极的一面是 对于某些Web开发人员来说 学习ASP NET要比学习PHP困难些 因为PHP提供的是开发人员创建Web站点时所惯用的脚本模式 但是 使用过OOP语言和/或V的开发人员会发现ASP NET比较亲切且易于学习
ASP NET支持OOP概念的积极的一面是 ASP NET应用程序的大多数部分都会得到很好的设计 并且能够对内容 逻辑和数据进行清楚的分隔 因而从应用程序生命周期的长远角度看 这通常更容易为其提供支持 此外 由于ASP NET本身支持企业技术 例如消息队列 事务(请参阅 NET Framework的System EnterpriseServices类)SNMP和Web服务 因而可以很容易地开发具有高度可缩放性的强大的应用程序
要大致了解面向对象编程(从Visual Basic的角度)的主要概念 请参阅Object Oriented Programming in Visual Basic
PHP ASP NET编译
PHP
请求PHP页面时 HTML和内联PHP脚本将编译为Zend Opcode(Zend操作代码) Opcode是低级的二进制指令 是提供PHP页面时实际使用的代码 编译后 Zend引擎将运行Opcode(与Java的运行时引擎运行字节码类似) 然后生成HTML并提供给客户端
有许多商业产品可用来通过优化这些Opcode来加快PHP页面的执行速度 其他提高PHP脚本性能的方法还包括对Opcode和生成的HTML进行缓存
ASP NET
当向IIS(Internet信息服务)或其他Web服务器请求 aspx页面(或ASP NET支持的任何其他扩展名)时 该请求将被传递到ASP NET进行处理 如果是第一次请求该页面 ASP NET会将其编译为MSIL(Microsoft中间语言) 然后 CLR(公共语言运行库)会将此MSIL代码转换为机器码 最后使用这个编译后的代码运行该请求 后续的请求将使用相同的机器码运行(假设该页面未被修改)
需要注意的是 因为由CLR生成的二进制代码已经最大限度地进行了优化 所以不必再使用其他产品来帮助提高性能
此外还要注意 ASP NET中的所有内容在运行前都被编译为机器码 甚至HTML文本也被转换为字符串常值控件 并按照适当的顺序插入到控件树中
PHP ASP NET功能对比
php怎么理解这些个关键字啊,public;private;protect;final;static;const;我感觉这public: 公有属性或方法
在子类中可以通过self::var 或self::method 来调用,可以通过parent::method来调用父类中的方法,但不能调用公有属性.
在实例中可以通过$obj->var或self::method 来调用
protected: 受保护类型
在子类中可以通过self::var 或self::method调用,可以通过parent::method来调用父类中的方法
在实例中不能通过$obj->var 来调用 protected类型的方法或属性
private: 私有类型
该类型的属性或方法只能在该类中使用,在该类的实例、子类中、子类的实例中都不能调用私有类型的属性和方法
再来说说final
1.final不能用来修饰成员属性
2.final只能修饰类和方法
作用:被修饰的类不能被子类所继承;被修饰的方法不能被子类的方法覆盖。
然后来说说static
1.static用来修饰成员属性和成员方法,但不能用来修饰类
2.用static修饰的成员属性可以被同一个类的所有对象共享
3.静态的数据是存在 内存中的 数据段中(初始化静态段)
4.静态的数据是在类在第一次加载时,分配到内存中的
5.什么是类被加载?只要在程序中使用到这个类(有这个类名出现)
6.静态的成员属性都要用类名去访问,不用创建对象,不用对象去访问;在类里边可以用self代表本类($this)
7.静态方法,不能访问非静态的成员属性(但是,在非静态方法却能访问静态的成员属性),非静态的成员属性,必须用对象访问,在内部访问非静态成员属性,用$this.
8.如果你确定一个方法中不需使用到非静态的成员属性,则可以将这个方法声明为静态方法,不需实例化对象,就可以访问
最后来说说const
1.它只能用来修饰成员属性
2.在类中声明常量必须使用const
3.访问方式和访问静态成员属性一样(类外使用 类名::成员属性,类里边则使用self::成员属性)
4.常量一定要在声明的时候就给初始值
关于php私有公有的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。