<!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(一)的更多相关文章

  1. PHP基础OOP(二) 多态

    PHP 基础  多态  ====================多态是一种思想:从一个基类中派生,响应一个虚命令,产生不同的结果.                不同的对象执行相同的方法而产生不同的行 ...

  2. 总结基础OOP(面向对象)

    OOP其实也就是面向对象编程.  一:什么是对象:  我们最常见的理解方式无非是:对象(object)是任何看得见.摸得着.感觉得到,可以获得的东西,有自己的标识的任何东西.对象是某一类的事物的具体个 ...

  3. c#基础-oop(面向对象理解)

    OOP-面向对象 封装,继承多态 一个桌子,用面向对象来描述一下它这个桌子项目 定义桌子类 对象:桌子 桌子的属性:名字,材质,体积 桌子的方法;放东西(方法) 现在桌子要放书,放花瓶,放文件(这里就 ...

  4. 面向对象(基础oop)之垃圾回收与静态成员

    大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...

  5. 面向对象(基础oop)之继承总结

    大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...

  6. 面向对象(基础oop)之进入继承

    大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...

  7. 面向对象(基础oop)之初识继承

    大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...

  8. 面向对象(基础oop)之结构与数组高级

    大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...

  9. 面向对象(基础oop)之属性与构造函数

    大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...

随机推荐

  1. iptables log

    iptables 日志 LOG target 这个功能是通过内核的日志工具完成的(rsyslogd) LOG现有5个选项 --log-level debug,info,notice,warning,w ...

  2. selenium.Phantomjs设置浏览器请求头

    from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCap ...

  3. Vijos 1816统计数字(计数排序)

    传送门 Description 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自 ...

  4. 《C陷阱与缺陷》杂记

    第一章 词法"陷阱" 1.4整型常量 如果一个整型常量的第一个字符是数字0,那么该常量将被视作八进制数.因此,10与010的含义截然不同.需要注意这种情况,有时候在上下文为了格式& ...

  5. PHP ServerPush (推送) 技术的探讨

    2016年11月29日17:51:03 转自:http://www.cnblogs.com/hnrainll/archive/2013/05/07/3064874.html 需求: 我想做个会员站内通 ...

  6. Beta Daily Scrum 第四天

    [目录] 1.任务进度 2.困难及解决 3.燃尽图 4.代码check-in 5.站立会议图 6.总结 1. 任务进度 学号 今日完成 明日完成 612 完成成就界面的统计图表 继续编写成就界面的图表 ...

  7. java语言:Linux与JVM的内存关系分

    在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约 600m,Linux自身使用大约800m.从表面上,物理内存应该 ...

  8. BZOJ1588[HNOI2002]营业额统计

    传送门 平衡树常规题,给出两种实现算法 Treap版: //OJ 1610 //by Cydiater //2016.9.1 #include <iostream> #include &l ...

  9. NOIp 0904 出题报告

    T1 huajitree 纯模拟,把S拆成二进制查一下有多少个1,然后把这个数和N*M求一下gcd,除一下输出就好了.说求期望值可能对新高一不太友好…. //huajitree //2016.8.22 ...

  10. 用GDB调试程序(一)

    http://blog.csdn.net/haoel/article/details/2879 用GDB调试程序 GDB概述———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或 ...