찾다
php教程php手册第三节--定义一个类

+-------------------------------------------------------------------------------+
| = 本文为Haohappy读> 
| = 中Classes and Objects一章的笔记 
| = 翻译为主+个人心得 
| = 为避免可能发生的不必要的麻烦请勿转载,谢谢 
| = 欢迎批评指正,希望和所有PHP爱好者共同进步! 
| = PHP5研究中心: http://blog.csdn.net/haohappy2004
+-------------------------------------------------------------------------------+
*/

第三节--定义一个类

当你声明一个类,你需要列出对象应有的所有变量和所有函数—被称为属性和方法. 3.1.1中显示了一个类的构成. 注意在大括号({})内你只能声明变量或者函数. 3.1.2中显示了如何在一个类中定义三个属性和两个方法.

3.1.1 

复制代码 代码如下:

class Name extends Another Class  
{  
   Access Variable Declaration  
   Access Function Declaration  





3.1.2

复制代码 代码如下:

   //定义一个跟踪用户的类  
   class User  
   {  
       //属性  
       public $name;  
       private $password, $lastLogin;  

       //方法  
       public function __construct($name, $password)  
       {  
           $this->name = $name;  
           $this->password = $password;  
           $this->lastLogin = time();  
           $this->accesses++;  
       }  

       // 获取最后访问的时间  
       function getLastLogin()  
       {  
           return(date("M d Y", $this->lastLogin));  
       }  
   }  

   //创建一个对象的实例  
   $user = new User("Leon", "sdf123");  

   //获取最后访问的时间  
   print($user->getLastLogin() ."
\n");  

   //打印用户名  
   print("$user->name
\n");  
?>  




当你声明属性,你不需要指明数据类型. 变量可能是整型,字符串或者是另一个对象,这取决于实际情况.在声明属性时增加注释是一个好主意,标记上属性的含义和数据类型.

当你声明一个方法,你所做的和在类外部定义一个函数是一样的. 方法和属性都有各自的命名空间. 这意味着你可以安全地建立一个与类外部函数同名的方法,两者不会冲突. 例如,一个类中可以定义一个名为date()的方法. 但是你不能将一个方法命名为PHP的关键字,如for或者while.

类方法可能包含PHP中所谓的type hint. Type hint 是另一个传递参数给方法的类的名字. 如果你的脚本调用方法并传递一个不是类的实例的变量,PHP将产生一个”致命(fatal)错误” . 你可能没有给其它类型给出type hint,就像整型,字符串,或者布尔值. 在书写的时候, type hint是否应当包含数组类型仍存在争议.

Type hint是测试函数参数或者运算符的实例的数据类型的捷径. 你可能总是返回这个方法. 确认你强制让一个参数必须是哪种数据类型,如整型. 3.2.1 确保编译类只产生Widget的实例.

3.2.1

复制代码 代码如下:

   //组件  
   class Widget  
   {  
       public $name='none';  
       public $created=FALSE;  
   }  

   //装配器  
   class Assembler  
   {  
       public function make(Widget $w)  
       {  
           print("Making $w->name
\n");  
           $w->created=TRUE;  
       }  
   }  

   //建立一个组件对象  
   $thing = new Widget;  
   $thing->name = 'Gadget';  

   //装配组件  
   Assembler::make($thing);  
?> 






除了传递参数的变量外,方法含有一个特殊的变量. 它代表类的个别实例. 你应当用这个来指向对象的属性和其它方法.一些面向对象的语言假设一个不合格的变量提交给本地属性,但在PHP中方法的任何变量只是在方法的一定范围内. 注意在User类的构造函数中这个变量的使用(3.1.2).

PHP在属性和方法声明前定义一个访问限定语,如public,private和protected. 另外,你可以用”static”来标记一个成员. 你也可以在类中声明常量. 本章稍后会有不同访问方式的相关讨论.

你可以在一行中列出相同访问方式的几个属性,用逗号来分隔它们. 在3.1.2中,User类有两个private属性--$password和$lastLogin. 
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
什么是Discuz?Discuz的定义和功能介绍什么是Discuz?Discuz的定义和功能介绍Mar 03, 2024 am 10:33 AM

《探索Discuz:定义、功能及代码示例》随着互联网的迅猛发展,社区论坛已经成为人们获取信息、交流观点的重要平台。在众多的社区论坛系统中,Discuz作为国内较为知名的一种开源论坛软件,备受广大网站开发者和管理员的青睐。那么,什么是Discuz?它又有哪些功能,能为我们的网站提供怎样的帮助呢?本文将对Discuz进行详细介绍,并附上具体的代码示例,帮助读者更

短视频的定义是什么短视频的定义是什么Dec 23, 2020 pm 02:56 PM

短视频的定义是指在各种新媒体平台上播放的、适合在移动状态和短时休闲状态下观看的、高频推送的视频内容,一般是在互联网新媒体上传播的时长在5分钟以内的视频;内容融合了技能分享、幽默搞怪、时尚潮流、社会热点、街头采访、公益教育、广告创意、商业定制等主题。短视频有着生产流程简单、制作门槛低、参与性强等特点。

iOS 17:如何在待机模式下更改iPhone时钟样式iOS 17:如何在待机模式下更改iPhone时钟样式Sep 10, 2023 pm 09:21 PM

待机是一种锁定屏幕模式,当iPhone插入充电器并以水平(或横向)方向定位时激活。它由三个不同的屏幕组成,其中一个是全屏时间显示。继续阅读以了解如何更改时钟的样式。StandBy的第三个屏幕显示各种主题的时间和日期,您可以垂直滑动。某些主题还会显示其他信息,例如温度或下一个闹钟。如果您按住任何时钟,则可以在不同的主题之间切换,包括数字、模拟、世界、太阳能和浮动。Float以可自定义的颜色以大气泡数字显示时间,Solar具有更多标准字体,具有不同颜色的太阳耀斑设计,而World则通过突出显示世界地

如何在 Microsoft Word 中制作自定义边框如何在 Microsoft Word 中制作自定义边框Nov 18, 2023 pm 11:17 PM

想让你的学校项目的头版看起来令人兴奋吗?没有什么比工作簿首页上的漂亮、优雅的边框更能使其从其他提交中脱颖而出了。但是,MicrosoftWord中的标准单行边框已经变得非常明显和无聊。因此,我们展示了在MicrosoftWord文档中创建和使用自定义边框的步骤。如何在MicrosoftWord中制作自定义边框创建自定义边框非常容易。但是,您将需要一个边界。第1步–下载自定义边框互联网上有大量的免费边界。我们已经下载了一个这样的边框。第1步–在Internet上搜索自定义边框。或者,您可以转到剪贴

MySQL 复合主键的定义与作用MySQL 复合主键的定义与作用Mar 15, 2024 pm 05:18 PM

MySQL中的复合主键是指表中由多个字段组合而成的主键,用来唯一标识每条记录。与单一主键不同的是,复合主键由多个字段的值组合在一起形成。在创建表的时候,可以通过指定多个字段为主键来定义复合主键。为了演示复合主键的定义与作用,我们先创建一个名为users的表,其中包含了id、username和email这三个字段,其中id是自增主键,user

PHP接口简介及其定义方式PHP接口简介及其定义方式Mar 23, 2024 am 09:00 AM

PHP接口简介及其定义方式PHP是一种广泛应用于Web开发的开源脚本语言,具有灵活、简单、强大等特点。在PHP中,接口(interface)是一种定义多个类之间公共方法的工具,实现了多态性,让代码更加灵活和可重用。本文将介绍PHP接口的概念及其定义方式,同时提供具体的代码示例展示其用法。1.PHP接口概念接口在面向对象编程中扮演着重要的角色,定义了类应

电子邮箱是什么 电子邮箱的通俗解释是什么电子邮箱是什么 电子邮箱的通俗解释是什么Feb 22, 2024 pm 04:00 PM

电子邮箱就是用网络设备传送电子信件的程序。解析1电子邮箱就是用网络设备传送电子信件的程序。2电子邮箱最初起源于1971年,主要是以网络为基础,为人们的工作和生活提供交流的一种功能,既可以收发邮件,还可以存储邮件。3电子邮箱极其方便,相对于传统邮件,它更快速、更便捷,根本不受时间和空间的限制。补充:电子邮箱的作用1电子邮箱可以自动接收网络电子邮箱所发的电子邮件,可以存储多种格式的电子文件。电子邮箱具有单独的网络域名,中间用一个符号@分开,符号的左边是对方的登录名,右边是完整的主机名,由主机名与域名

如何在 iOS 17.4 中自定义 iPhone 上的应用程序图标如何在 iOS 17.4 中自定义 iPhone 上的应用程序图标Mar 15, 2024 pm 01:43 PM

如何在iOS17.4中自定义iPhone上的应用程序图标在iOS17.4更新中,自定义iPhone主屏幕已成为一种令人兴奋的方式,让用户个性化他们的设备。这个更新带来了微妙而重要的变化,使用户更容易了解如何浏览这些修改。通过自定义应用程序图标,用户可以将个性融入手机界面。以下视频由KaylaLeRoux展示了如何在iPhone上进行这一操作,让整个过程变得更加简单。为什么要定制?通过iOS17.4更新,Apple简化了自定义手机主屏幕的流程,使用户能够轻松地以符合自己风格和喜好的方式进行个性化设

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는