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)之属性与构造函数
大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...
随机推荐
- CSS基础知识真难啊
CSS层叠样式表Cascading Style Sheets CSS派生选择器(上下文选择器): 后代选择器:h1 strong {color:red;}第一个参数和第二个参数之间的代数是可以无限的 ...
- [SVN Mac自带SVN结合新浪SAE进行代码管理]
前一篇我转载了别人SVN的使用方法,前面的配置和服务器我不是很明白,自己尝试后发现我需要使用到的核心命令是下面一些. 新浪SAE提供了SVN代码管理仓库,只要进入相应应用,然后点击左侧代码管理,到最下 ...
- 几个容易被忽略的mysql知识
为什么标题要起这个名字呢?commen sence指的是那些大家都应该知道的事情,但往往大家又会会略这些东西,或者对这些东西一知半解,今天我总结下自己在mysql中遇到的一些commen sense类 ...
- Androidstudio 的svn配置 需要忽略的目录
- 捉襟见肘之UIView中contentMode属性
UIView.h @property(nonatomic) UIViewContentMode contentMode; // default is UIViewContentModeScaleToF ...
- Objective -C学习笔记之字典
//字典:(关键字 值) // NSArray *array = [NSArray array];//空数组 // NSDictionary *dictionary = [NSDictionary d ...
- 【原】javascript数组操作
继续我的第二遍<javascript高级程序设计第三版>,今天要做的笔记是array 一.数组的操作 1.数组的创建: var colors= new Array(); //创建一个数组 ...
- jquery控制滚动条改变上面固定(fixed)导航条或者搜索框的属性
<script type="text/javascript"> $(document).ready(function(){ $(window).scroll( func ...
- push submodule
git status git add sparx git commit -m "message" git push
- 几个有用的jQuery代码片段
1.检测Internet Explorer版本 $(document).ready(function() { if (navigator.userAgent.match(/msie/i) ){ ale ...