首页 > 其他分享 >第三章 面向对象的工具

第三章 面向对象的工具

时间:2023-06-26 22:36:12浏览次数:30  
标签:第三章 name computer1 computer2 echo 面向对象 computer 工具 php


computer.class.php

<?php
	class Computer {
		public $_name = 'dell';
		public function _run() {
			echo '运行';
		}	
	}
?>

 

person.class.php

<?php
	class Person {	
	}
?>

 

demo1.php

<meta charset="UTF-8">
<?php
	//引入类文件即可
	//require 'computer.class.php';
	//1.如果要包含多个类文件,是不是要一一引入。
	//2.引入多个类文件,如果有用不到的,就会产生浪费
	//3.引入了类文件,可能会遗漏,比如说,创建了一个对象,而这个对象的类文件没有引入。就会产生错误
	//$_className = 类名
	//只要实例化了,那么 $_className = 'Computer';
	function __autoload($_className) {
		require strtolower($_className).'.class.php';
	}
	$computer = new Computer();
	$person = new Person();
	echo $computer->_name;
	$computer->_run();
?>

 

demo2.php

<meta charset="UTF-8">
<?php
	class Computer {
		public function _run() {
			echo '运行';
		}		
		//采用__call()方法屏蔽调用
		//__call()里面有两个参数
		public function __call($_methodName,$_argList) {
			echo $_methodName.'()方法不存在';
			print_r($_argList);
		}
	}
	$computer = new Computer();
	$computer->_go();
?>

 

demo3.php

<meta charset="UTF-8">
<?php
	class Computer {
		public function _run() {
			echo '运行';
		}	
		public function __toString() {
			return '我是对象的字符串!';
		}
	}
//	$computer = new Computer();
//	echo $computer;
	echo new Computer();
?>

 

demo4.php

<meta charset="UTF-8">
<?php
	class Computer {
		public $_name = 'dell';
		public function _run() {
			echo '运行';
		}	
	}
	//引用传递
	$computer1 = new Computer();
	$computer2 = $computer1;
	$computer2->_name = 'ibm';
	echo $computer1->_name;
?>

 

demo5.php

<meta charset="UTF-8">
<?php
	class Computer {
		public $_name = 'dell';
		public function _run() {
			echo '运行';
		}	
	}
	//独立实例
	$computer1 = new Computer();
	$computer2 = new Computer();
	$computer1->_name = '联想';
	echo $computer1->_name;
?>

 

demo6.php

<meta charset="UTF-8">
<?php
	class Computer {
		public $_name = 'dell';
		public function _run() {
			echo '运行';
		}	
	}
	//对象克隆
	$computer1 = new Computer();
	$computer1->_name='联想';
	$computer2 = clone $computer1;
	//echo $computer2->_name;
	$computer2->_name = 'ibm';
	echo $computer2->_name;
	echo $computer1->_name;
?>

 

demo7.php

<meta charset="UTF-8">
<?php
	class Computer {
		public $_name = 'dell';
		public function _run() {
			echo '运行';
		}	
		public function __clone() {
			echo '克隆了';
			$this->_name = '联想';
		}
	}
	$computer1 = new Computer();
	$computer2 = clone $computer1;
	echo $computer1->_name;
	echo $computer2->_name;
?>

 

demo8.php

<meta charset="UTF-8">
<?php
	class Computer {
		public function _run() {}
		private function _go() {}
		public $_name = 'dell';
		private $_model = 'i7';
	}
	class NoteComputer extends Computer {	
	}
	interface Person {
	}
	$computer = new Computer();
	$notecomputer = new NoteComputer();
	//1.检查类是否存在
	echo class_exists('Computer');
	//2.获取对象的类名
	echo get_class($computer);
	//3.获取类中公共的方法
	print_r(get_class_methods($computer));
	//4.获取类中的字段
	print_r(get_class_vars('Computer'));
	//5.获取子类的父类
	echo get_parent_class($notecomputer);
	//6.判断接口是否存在
	echo interface_exists('Person');
	//7.判断对象是否是这个类,$notecomputer的类的父类是Computer
	echo is_a($notecomputer,'Computer');
	//8.判断对象是否是类的子类。
	echo is_subclass_of($notecomputer,'Computer');
	//9.判断对象是否有这个方法
	echo method_exists($computer,'_run');
?>

 

demo9.php

<?php
	//反射,了解一下,入门
	//查看自定义类
	class Computer {
		public function _run() {}
		private function _go() {}
		public $_name = 'dell';
		private $_model = 'i7';
		public static $_cpu;
		public static function tool() {
			
		}
		const PI = 3.14;
	}
	//使用反射列出他们的信息
	Reflection::export(new ReflectionClass('Computer'));
?>

 

demo10.php

<?php
	class Computer {
	}
	//系统内置的类 
	//Reflection::export(new ReflectionClass('DateTime'));
	$rc = new ReflectionClass('DateTime');
	echo $rc->getName();
	echo $rc->getFileName();
	print_r($rc->getConstants());
?>

 

 

 

 

标签:第三章,name,computer1,computer2,echo,面向对象,computer,工具,php
From: https://blog.51cto.com/u_16171388/6558646

相关文章

  • PS 矩形工具的使用
    矩形工具:可以拖动鼠标在绘图区内绘制出所需要的矩形。在PS矩形工具中,有正方形(可拉伸成为长方形)、圆角矩形、椭圆工具、多边形工具、直线工具、多边形工具等(其中多边形工具可在头部预设图形。)另说明一点,矩形工具是矢量图来的。 如图,使用矩形工具图出组合的图形。 如图,使用矩形工具......
  • PS 切片工具的使用
    PS切片,快速将图象切成N个小图象,节省时间。 第一步:使用“标尺”,拉“参考线”,能够方便于“切片”。在“视图”的“标尺”上打勾,在鼠标坐标上下拉就可以出现“参考线” 第二步:选择“切片工具”,开始切图 第三步:按“Shift+Alt+Ctrl+S”就可以弹出该窗口,保存指定的格式,点击“存储” ......
  • labview附加工具,docx工具
    labview附加工具,docx工具DocX工具包是LabVIEW的一款附加软件。该附加软件提供了一个LabVIEWAPI,可用于创建MicrosoftWordOpenXML格式文档(docx)文件。该附加软件不需要ActiveX、组件对象模型或MicrosoftWord即可创建.docx文件。您还可以打开和编辑现有的.docx和MIMEHTML(mht)......
  • LabVIEW Excel工具包快速读写EXCEL样式模板生成测试报告制作
    LabVIEWExcel工具包快速读写EXCEL样式模板生成测试报告制作原创文章,转载请说明出处,资料来源:http://imgcs.cn/5c/673187774245.html......
  • 绑定方法与非绑定方法、隐藏属性、property装饰器、面向对象的三大特征
    绑定方法绑定给对象的方法特殊之处:函数的第一个形参self就是对象自己。绑定给对象的方法就会有对象来调用,会把对象自己当成第一个参数传给第一个形参self类调用,就需要传参数,方法里面有几个参数就要传几个参数classStudent():school='SH'#类的属性def_......
  • Linux可视化管理-webmin工具
    环境:连接工具:tabby,操作系统:centos7.6.webmin介绍​ Webmin是功能强大的基于Web的Unix/linux系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理操作。除了各版本的linux以外还可用于:AIX、HPUX、Solaris、Unixware、Irix和FreeBSD等系统安......
  • 数据结构(第三章)
    数据结构(第三章)栈定义:只允许在一端进行插入或删除操作的线性表特点:后进先出顺序栈的表示与实现顺序栈:利用顺序存储结构实现栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设top指示栈顶元素在顺序栈中的位置。栈的顺序存储类型#defineMaxsize5......
  • MySQL---性能分析工具的使用
     数据库服务器优化的步骤  查看系统性能参数统计sql查询成本:last_query_cost定位执行慢的SQL:慢查询日志 开启慢查询日志查看当前是否开启慢......
  • 数字相关的工具类
    数字相关的工具类publicclassNumberUtil{privateNumberUtil(){}/***判断是否为11位电话号码**@paramphone*@return*/publicstaticbooleanisPhone(Stringphone){Patternpattern=Pattern.compile(......
  • 音视频处理工具FFmpeg与Java结合的简单使用
    一、什么是FFmpegFFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都......