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)之属性与构造函数
大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...
随机推荐
- wrapper for lua
考虑使用已经有的dll,要写wrapper,使得在lua中能调用dll里的函数,嗯,参考<Programming in lua>,然后仿写luars232. 一.函数定义 先分析一个函数的 ...
- 加州大学伯克利分校Stat2.3x Inference 统计推断学习笔记: Section 3 One-sample and two-sample tests
Stat2.3x Inference(统计推断)课程由加州大学伯克利分校(University of California, Berkeley)于2014年在edX平台讲授. PDF笔记下载(Acad ...
- AngularJs Cookies 操作
$cookiesProvider 使用$cookiesProvider改变$cookies服务的默认行为. 默认属性 path:字符串,cookies只在这个路径及其子路径可用.默认情况下,这个将会是 ...
- CF 701C They Are Everywhere(尺取法)
题目链接: 传送门 They Are Everywhere time limit per test:2 second memory limit per test:256 megabytes D ...
- 【Alpha版本】冲刺-Day9
队伍:606notconnected 会议时间:11月17日 会议总结 张斯巍(433) 今天安排:关注界面设计 完成度:90% 明天计划:优化上传界面 遇到的问题:无 感想:图画得好未必做的好,没有 ...
- vs------各种错误解决方法
错误:命名空间System.Net中不存在类型或命名空间名“Http”,或工程里面“引用”的文件太少 转载:http://www.asp.net/mvc/mvc4 错误:LD.exe 已退出,代码为- ...
- 加载信息,先从数据库取出5条实现分页,鼠标向上滑动触发Ajax再加载5条,达到异步刷新,优化加载。。。
php数据库取数据 <?php include("conn1.php"); include('../function/functions.php'); $page=intva ...
- ----------jqery和js如何判断checkbox是否选中 --------两个单选按钮如何选一个,且用jquery获取被选的值
jqery和js如何判断checkbox是否选中 jquery: <div id="divId" class="divTable"> <div ...
- nodejs安装及环境配置(windows系统)
作为服务端运行javascript的平台的NodeJs,把前台javascript移到了服务器端,Google V8引擎使其运行效率非常高,它可以异步,无任何阻塞运行程序.nodejs包含http服务 ...
- iocp还是select
上一个项目libevent应该是select,现在libuv是iocp,都知道Windows下iocp比select效率高,boost asio 也是iocp,但具体使用select和iocp发现没有 ...