PHP基础OOP(一)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="Basedemo/DemoPage.css"></head> <body>
<div id="main">
<div id="wrapper"> <h3>类和对象的创建</h3>
<div id ="content">
<?php
//
//================PHP的面向对象基础===============
//
//
//PHP的面向对象是在PHP4.0时引入的设计
//对象:使用新的数据类型管理相同事物的变量
//类的命名规范:类名.class.php(Animal.class.php)
//基本类的定义 class 类名{属性;构造方法;成员方法;析构方法};
//
//====类的引用或包含:
//require 'prepend.php';
//require ('somefile.txt');
//require_once'Animal.class.php';
//include(Animal.class.php)
//include_once("a.php");
//区别:
//加once的,如果重复引用,则只引一次
//include和require的区别在于,在处理失败时的提示
//include处理失败提示警告,后面的代码会执行
//require处理失败提示致命错误,后面的代码不执行
//
//====类成员的访问
//PHP类的实例化:$cat = new Animal(); 或者 $cat = new Animal;带括号或不带都可以
//对象属性的访问和赋值: $cat ->name="小白";
//对象方法的访问:$cat->Say();
//
//====内存数据分布:静态区、常量区、代码区、堆区、栈区
//堆区:存放对象
//栈区:存放基本数据类型和引用类型的引用地址
//
//====PHP的值传递与引用传递
//给函数传递一个对象,是引用传递,给函数传一个基本数据类型(整数、小数、布尔、字符),是值传递
//【基本数据类型中的字符串类型与C#不同,因为他们在传递过程中都是值传递】
//如果希望是引用传递则在变量前加&符:function fun(&变量,&变量,...){}
//
// //定义一个动物类Animal:
class Animal
{
public $name;
public $age;
public $color; public function Say()
{
echo "这是一只".$this->color."的".$this->name."今年已经".$this->age."岁了<br/>";
}
} //实例化一个对象
$cat = new Animal(); $cat->name = "小猫";
$cat->age=1;
$cat->color="白色";
$cat->Say();
//echo "这是一只".$cat->color."的".$cat->name."今年已经".$cat->age."岁了<br/>";
//output: 这是一只白色的小猫今年已经1岁了 //实例化一个对象
$dog = new Animal(); $dog->name = "小狗";
$dog->age=2;
$dog->color="黑色";
$dog->Say();
//echo "这是一只".$dog->color."的".$dog->name."今年已经".$dog->age."岁了<br/>";
//output: 这是一只黑色的小狗今年已经2岁了 ?>
</div> <h3>函数的细节</h3>
<div id ="content">
<?php
//参数列表:参数可以是任意类型
//方法可以有返回值,也可以没有返回值
function FindMax($arr)
{
$maxVal=$arr[0];
$maxIndex=0;
for ($i=1; $i <count($arr) ; $i++) {
if($maxVal<$arr[$i])
{
$maxVal = $arr[$i];
$maxIndex = $i;
}
}
return $maxVal;
} $arr1 = array(2,8,9,11,1,5);
$result = FindMax($arr1);
var_dump($arr1);
echo "<br/>最大的数是:";
echo $result; ?>
</div> <h3>构造函数 与 析构函数</h3>
<div id ="content">
<?php
/**
* 构造函数:function __construct(){}
* 1.类实例化时赋值,完成对类的对象初始化
* 2.每个类有一个默认的构造函数,自定义的构造函数会覆盖默认的构造函数
* 3.一个类只能有一个构造函数,不能重载
* 4.构造函数没有返回值,创建对象时自动调用
* 5.修饰符 默认为public
* 6.PHP4.0 的中的形式:public function Person(){}
* 7.PHP5新增的写法:public function __construct(){},PHP4中的写法依然有效
*/
class Person
{
public $Name;
public $Age;
public $Sex; //构造函数
public function __construct($Name,$Age,$Sex)
{
echo "构造函数执行了<br/>";
$this->Name = $Name;
$this->Age = $Age;
$this->Sex=$Sex;
} //自定义函数
public function Say()
{
echo "姓名:".$this->Name.", 性别:".$this->Sex.", 年龄:".$this->Age."<br/>";
} /*
*析构函数:function __destruct(){}
*用于释放对象资源(如:数据库链接、图片文件资源等)
*会自动调用,释放对象资源,并不销毁对象本身
*一个类只能有一个析构方法,没有参数
*对象的释放顺序,在栈中为先进后出,即最先创建的对象最后销毁
*垃圾回收:当对象没有任何引用指向时,会被自动回收(析构函数会立即调用)
*/
function __destruct()
{
echo "析构函数执行了,销毁对象: ".$this->Name."<br/>";
} } //实例化一个人类:
$p1 = new Person("张三","22","男");
$p2 = new Person("小美",19,"女");
$p1 ->Say();
$p2 ->Say();
?>
</div> </div>
</div> <div id="footer">
<div class="tri"></div>
<h1>Write some things for your project!</h1>
</div>
</body>
</html>
PHP基础OOP(一)的更多相关文章
- PHP基础OOP(二) 多态
PHP 基础 多态 ====================多态是一种思想:从一个基类中派生,响应一个虚命令,产生不同的结果. 不同的对象执行相同的方法而产生不同的行 ...
- 总结基础OOP(面向对象)
OOP其实也就是面向对象编程. 一:什么是对象: 我们最常见的理解方式无非是:对象(object)是任何看得见.摸得着.感觉得到,可以获得的东西,有自己的标识的任何东西.对象是某一类的事物的具体个 ...
- c#基础-oop(面向对象理解)
OOP-面向对象 封装,继承多态 一个桌子,用面向对象来描述一下它这个桌子项目 定义桌子类 对象:桌子 桌子的属性:名字,材质,体积 桌子的方法;放东西(方法) 现在桌子要放书,放花瓶,放文件(这里就 ...
- 面向对象(基础oop)之垃圾回收与静态成员
大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...
- 面向对象(基础oop)之继承总结
大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...
- 面向对象(基础oop)之进入继承
大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...
- 面向对象(基础oop)之初识继承
大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...
- 面向对象(基础oop)之结构与数组高级
大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...
- 面向对象(基础oop)之属性与构造函数
大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...
随机推荐
- 小米手机(HM1SW)高通开发android程序全过程
小米手机(HM1SW)开发android程序全过程 修改历史: 2016年5月9日 -------- 整理文档 a.增加了手机基本信息. b.增加360手机助手连接说明 2016年2月26日 - ...
- 什么是 WSGI -- Python 中的 “CGI” 接口简介
今天在 git.oschina 的首页上看到他们推出演示平台,其中,Python 的演示平台支持 WSGI 接口的应用.虽然,这个演示平台连它自己提供的示例都跑不起来,但是,它还是成功的勾起了我对 W ...
- pyenv的使用
开始想使用virtual实现不同的版本的py隔离,然后发现不太方便,然后发现了这货. pyenv安装(ubuntu环境 ➜ ~ git clone git://github.com/yyuu/pyen ...
- JavaScript制作时钟特效
需求说明:制作显示年.月.日.星期几并且显示上午(AM)和下午(PM)的 12进制的时钟,具体效果如下所示: 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C// ...
- HTML5学习总结-08 WebSocket 服务器推送
一 WebSocket 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展 ...
- runtime使用小例子 - 给对象O-C属性赋值
这些日子在家里学习runtime,看runtime的一些方法和前辈们的博客,我也尝试着写几个runtime有效的运用 一.给对象属性赋值,例如一个WebEntity类 她有三个属性:NSString. ...
- HTML5预学习 长期更新
HTML5 仍处于完善之中. 为 HTML5 建立的一些规则: 新特性应该基于 HTML.CSS.DOM 以及 JavaScript. 减少对外部插件的需求(比如 ...
- iterator and iterable
前者是迭代器 后者是接口,List等继承这个接口
- Ansible facts
facts组件是Ansible用于采集被管理机器设备信息的一个功能.可以使用setup模块查机器的所有facts信息,可以使用filter来查看指定信息.整个facts信息被包装在一个json格式的数 ...
- Jquerymobile 简单安装
需要导入三个文件jquery,jquerymobile,css(jquerymobile地址:http://jquerymobile.com/) <script src="js/jqu ...