文档章节

PHP 面向对象:类的属性

大灰狼wow
 大灰狼wow
发布于 2014/05/13 15:52
字数 594
阅读 115
收藏 5

在PHP5中,在属性定义可以不设置初值,或者赋予以下红色类型的初值。

PHP中简单类型有8种,分别是:

  • 数值类型

    1. boolean 布尔类型

    2. integer 整型

    3. float 浮点型,也称为 double 双精度浮点型

    4. string 字符串

  • 复合类型

    1. array 数组

    2. object 对象

  • 特殊类型

    1. resource 资源

    2. NULL

<?
    class A{    	
    }
	
    class Person{
    	private $name; //定义属性未赋值。
    	private $name1 = NULL; //定义属性空值 ,与未赋值一样。
    	private $married = true;  //用布尔型为属性赋值。	
    	private $grade = 0; //用整形数值为属性赋值
    	private $eyesight = 0.1; //用浮点型数字为属性赋值
		private $nationality = "China"; //用字符串为属性赋值
		private $arr = array("foo" => "bar", 12 => true); // 用数组为属性赋值
		//private $a = new A(); //PHP5不允许,创建对象类型赋值给属性
		//private $res = opendir("abc"); // PHP5不允许使用资源类型 
		//private $g = $this->grade; //不允许用前面定义的属性为新属性赋值。
		
    }
    $a = new Person();
?>

在上面例子中,第13行,尝试创建对象并将值赋予属性$a 会报错。

第14行,建立资源并复制给$res会出现错误。

第15行,使用上面定义的属性为新属性赋值也会产生错误。

在Java中,可以作13行和15行这样的操作。 PHP5中定义属性的默认值,被限制到最简单的方式。其它的操作,交给构造方法操作,后面内容中将讲解构造方法。

变量与引用变量

普通变量间的传值方法,就是值的赋值。比如数组。

<?
	$arr = array("foo" => "bar", 12 => true); 
	$a = $arr;
	
	$arr[foo] = "new";
	print_r($arr);
	echo '<br />';
	print_r($a);
?>

程序输出:

Array ( [foo] => new [12] => 1 ) 
Array ( [foo] => bar [12] => 1 )

而指向对象的变量,是一个引用变量。在这个变量里面存储的是所指向对象的内存地址。引用变量传值时,传递的是这个对象的指向。而非复制这个对象。

属性的扩充

$this 指当前对象。

$this-> 调用当前对象的属性或者方法。

在类中使用$this-> 调用一个未定义的属性时,PHP5会自动创建一个属性供使用。

这个被创建的属性,默认的方法权限是public。

<?
	class A {
		public $name = "Gonn";
		
		public function __construct() {
			$this -> age = "24";
		}
	}
	
	$p = new A();
	
	echo $p->name;
	echo '<br />';
	echo $p->age;
?>

输出

Gonn
24


本文转载自:http://www.nowamagic.net/php/php_AttributeOfClass.php

上一篇: swoole 入门
下一篇: 新闻代码分层
大灰狼wow
粉丝 48
博文 396
码字总数 49161
作品 1
嘉兴
程序员
私信 提问
php面向对象三大特性

1.封装: 目的:使类更加安全 步骤: 1、成员变量变成private(私有的) 2、设置方法/调用方法 3、在方法中增加限制 aa = $v; } public function get_aa() { return $this->aa;//给aa一个返回...

IDC_之家
2017/02/14
0
0
php面向对象

面向对象在很多语言,如c,java,c++,c#等语言中都有,它与面向过程的区别在于:面向过程实现功能时使用几十个代码块,而面向对象可以使用一个广泛的代码块实现功能。 在分享php的面向对象之前...

马大哈tt
2017/11/25
0
0
面向对象

面向对象 一、OOP(Object-Oriented Programming 面向对象的编程) Xue Xi Object Oriented 学习面向对象的 xxoo 特点:抽象 1. 什么是对象 对象: 万事万物皆对象。客观存在的任何一个实体 2. 什...

方花
2017/11/14
0
0
《详解PHP面向对象》系列技术文章整理收藏

《详解PHP面向对象》系列技术文章整理收藏 1PHP面向对象之旅:类和对象 http://www.lai18.com/content/425094.html 2PHP面向对象之旅:类的属性 http://www.lai18.com/content/425093.html 3...

开元中国2015
2015/06/27
66
0
PHP核心技术与最佳实践 读书笔记 第一章面向对象思想的核心概念

第一章 面向对象思想的核心概念 面向对象程序设计是一种程序设计范型,同时也是一种程序开发方法。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性,灵活性和可扩展性...

lilugirl
2013/06/08
274
0

没有更多内容

加载失败,请刷新页面

加载更多

读书笔记:深入理解ES6 (五)

第五章 解构:使数据访问更便捷 第1节 为什么使用解构功能?   在ES5中,开发者们从对象、数组中获取特定数据并赋值给变量,编写了很多看起来同质化的代码。例如: 1 let options = {2 ...

张森ZS
26分钟前
21
0
CentOS7 yum方式安装MySQL5.7

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。 1 下载并安装MySQL官方的 Yum Repository [root@localho...

roockee
34分钟前
15
0
Allegro三种自定义设置快捷键的方法

Allegro自定义设置快捷键的三种方法: 1、在Allegro PCB editor 命令窗口直接定义 2、通过修改用户变量env文件来设置快捷键 3、定义笔画为快捷键 1、在Allegro PCB editor 命令窗口直接定义 ...

demyar
39分钟前
16
0
如何做一张能让人眼前一亮的大屏?

作为在职场驰骋的社会人,提到数据可视化大家应该都不陌生了。数据可视化的作用也不用我多说,主要是利用图形化手段,更清晰直观地将数据展示。多层次、交互式的可视化分析能够方便决策者理解...

朕想上头条
39分钟前
9
0
TL138/1808/6748-EthEVM开发板硬件CPU、FLASH、RAM

TL138/1808/6748-EthEVM是广州创龙基于SOM-TL138/1808/6748核心板开发的一款开发板,具有三个网络接口。由于SOM-TL138/1808/6748核心板管脚兼容,所以此三个核心板共用同一个底板。开发板采用...

Tronlong创龙
44分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部