suchen
Heimphp教程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. 
Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
什么是Discuz?Discuz的定义和功能介绍什么是Discuz?Discuz的定义和功能介绍Mar 03, 2024 am 10:33 AM

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

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

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

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

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

如何在 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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools