PHP_Day02_数据类型_对象

<?php
	/*
		作者:赵某
		时间:2018/11/4
		内容:简要介绍PHP中对象的创建和访问对象属性的方法以及其他数据类型是怎么转换成对象的
	*/
	
	// 设置对象模板
	class Student{
		public $name = 'Peter';
		public $age = 18;
		public $gender = 'male';
		
		public function getInfo(){
			return 'My name is : '.$this->name.'<br>'.'My age is : '.$this->age.'<br>'.'My gender is : '.$this->gender;
		}
	}
	
	// 实例化一个对象
	$stu = new Student;
	echo $stu->name;			# 访问对象属性
	echo '<hr>';
	echo $stu->age;
	echo '<hr>';
	echo $stu->gender;
	echo '<hr>';
	
	echo $stu->getInfo();		# 访问对象提供的方法
	
	// PHP内置了一个标准对象,用户可以自行添加属性和方法
	$obj = new stdClass();		# 用内置的标准对象模板实例化一个对象
	$obj->name = 'Canglaoshi';	# 添加属性
	$obj->age = 18;				# 添加属性
	$obj->getInfo = function(){	# 添加方法,用function()函数来添加方法,此时getInfo只是一个标识符
		return 'Beautiful~';
	};
	
	echo '<hr>';
	echo $obj->name;			# 访问属性
	echo '<br>';
	echo $obj->age;
	echo '<br>';
	print call_user_func($obj->getInfo);	
	# 访问添加给标准对象的方法时要通过call_user_func()函数来访问,参数时添加时候的标识符
	
	
	// 对象类型转换,使用object关键字
	// 不管是那种转化,结果都是类似于数组的键值对模型
	print '<hr>';
	print '<pre>';				# 格式化输出
	$obj = (object)[10,20,'PHP'];	# 将数组转化为对象
	print_r($obj);
	print '</pre>';
	
	print '<hr>';
	print '<pre>';				# 将字符串转化为对象,并再次添加对象属性然后打印
	$obj = (object)'PHP Chinese';
	$obj->name = 'Cang~';
	print_r($obj);
	print '</pre>';
	
	print '<hr>';
	print '<pre>';
	$obj = (object)150;
	print_r($obj);
	print '</pre>';
	
	print '<hr>';
	print '<pre>';
	$obj = (object)NULL;		# 将NULL转化为对象
	print_r($obj);
	print '</pre>';
	
	print '<hr>';
	print '<pre>';
	$obj = (object)'';			# 将空字符串转化为对象
	print_r($obj);
	print '</pre>';				# 对比上面两种结果发现,NULL转化后是空对象,空字符串转化后对象有属性,属性内容为空
?>

猜你喜欢

转载自blog.csdn.net/IronMan240/article/details/83719455
今日推荐