标签:
加载类:
从现在养成的习惯以后写类名时:每个单词的首字母的大写,这样的命名方法叫做驼峰法,eg:Info.class.php 这样很快可以看清楚就是一个Info的类
在php代码里面,/代表本地磁盘的根,(该文件所在的应聘)
在html代码里面,/代表的是当前的站点目录(这里是www目录)
加载类的方法:
将文件名加载到页面,最好是在同一个路径下,参数是一个路径(能够找到类文件)
include("Info.class.php"); //直接写文件名的加载
include "Info.class.php";
require_once("./Info.class.php"); //请求目标页面加载一次
require_once "./Info.class.php";
require("Info.class.php");
require "Info.class.php";
以上是加载的六种方法,每种都是可以的;但是也有稍稍的区别:include,如果有重大错误时加载不执行下面的任何内容,而require_once是可以执行的
自动加载类:
function __autoload($classname)//参数的名是类名
{
include("../".$classname.".class.php");在造对象的时候自动执行
}
自动加载要求的会比较苛刻,一般会不提倡使用的:
要求:所有的类都要有同样的命名规则,所有的内容都要写在同一个文件名下,参数名必须要与类名统一
当前目录:./或是直接写
上级目录:../
下级目录:目录名/
根目录:/
不在同一文件名下的加载:举例
include "AppServ/www.test0429/Info.class.php";
在html中加载一个同一文件夹下的图片
<img src="/test0429/1.jpg"/>
不在同一级的文件加载
<img src="../2.jpg"/>
针对面向过程和面相对象的例题应用求大圆与小圆面积之差
面向过程
<?php
$r1=10;
$r2=5;
$mj=$r1*$r1*3.14 - $r2*$r2*3.14;
echo $mj;
?>
面向对象
首先是造类,写在不同页面需要加载
<?php
class Yuan
{
public $r; //圆半径
function __construct($r) //构造方法来初始化半径
{
$this->r=$r;
}
function MianJi()
{
return $this->r*$this->r*3.14; //返回圆的面积
}
function ZhouChang()
{
return $this->r*2*3.14; //返回圆的周长
}
}
$y1=new Yuan(10);
$y2=new Yuan(5);
echo $y1->MianJi() - $y2->MianJi(); //利用方法求圆的面积之差
echo $y1->ZhouChang() - $y2->ZhouChang(); //求周长之差
?>
关于面向对象的练习题
因为牵扯到劳动节放假回家,剩下的自己晓得了吧!自己动手做了以下感觉还好。
显示数据
表和类对应:表名是类名,列名是类里面的成员
表里面的每一条数据对应是类实例化的对象
<?php
class Info
{
public $code;
public $name;
public $sex;
public $nation;
public $birthday;
}
include("Info.class.php");//类的加载
$attr=array();
$info1 = new Info();
$info1->code ="p001";
$info1->name ="张三";
$info1->sex ="男";
$info1->nation ="汉族";
$info1->birthday ="1988-2-13";
//往里面追加元素
array_push($attr,$info1);
$info2 = new Info();
$info2->code ="p002";
$info2->name ="李四";
$info2->sex ="女";
$info2->nation ="汉族";
$info2->birthday ="1989-2-3";
array_push($attr,$info2);
$info3 = new Info();
$info3->code ="p003";
$info3->name ="王五";
$info3->sex ="男";
$info3->nation ="回族";
$info3->birthday ="1990-2-3";
array_push($attr,$info3);
echo "<table width=‘100%‘ border=‘1px‘ cellpadding=‘0‘ cellspacing=‘0‘>";
echo "<tr><td>Code</td><td>Name</td><td>Sex</td><td>Nation</td><td>Birthday</td></tr>";
foreach($attr as $value)
{
echo "<tr><td>{$value->code}</td><td>{$value->name}</td><td>{$value->sex}</td><td>{$value->nation}</td><td>{$value->birthday}</td></tr>";
}
echo "</table>";
?>
用for的遍历一样可以实现,相对来讲较为麻烦
for($i=0;$i<count($attr);$i++)
{
echo "<tr><td>{$attr[$i]->code}</td><td>{$attr[$i]->name}</td><td>{$attr[$i]->sex}</td><td>{$attr[$i]->nation}</td><td>{$attr[$i]->birthday}</td></tr>";
}
另一个是关于游戏的题目:
先做了一个类,类名是:game.class.php 代码部分如下:是一个纯的php页面所有后面可以不加 ?>
<?php
class Hero
{
public $blood;
public $gongji;
public $jingyan;
public $level;
public $name;
public $money;
public $jineng = array();
//构造函数,对成员进行初始化
function __construct($n)
{
$this->blood = 100;
$this->gongji = 10;
$this->jingyan = 0;
$this->level = 1;
$this->money = 100;
$this->name = $n;
}
//打怪函数
function DaGuai()
{
//随机
$sj = floor(rand(0,100));
if($sj>30)
{
//获取经验
$jy = floor(rand(0,40));//floor取整函数
//将该英雄的经验增加
$this->jingyan = $this->jingyan+$jy;
//判断是否要升级
if($this->jingyan>=50)
{
$this->level +=1;
$this->jingyan = 0;//经验清零
$this->gongji +=5;
$this->blood +=20;
}
echo $this->name."杀死了一个怪物,获得了{$jy}点经验 ";
}
else
{
if($this->level==1)
{
}
else
{
$this->level -=1;
}
echo "你被怪物打死了";
}
}
//查看英雄信息
function Show()
{
echo "英雄的姓名:{$this->name}<br>";
echo "英雄的血量:{$this->blood}<br>";
echo "英雄的攻击:{$this->gongji}<br>";
echo "英雄的经验:{$this->jingyan}<br>";
echo "英雄的等级:{$this->level}<br>";
echo "技能为:";
foreach($this->jineng as $v)
{
echo $v.",";
}
}
//学习技能
function XueXi()
{
//花钱
$hf = floor(rand(0,20));
$n = floor(rand(0,5));
//技能库里面选技能
switch($n)
{
case 0:
array_push($this->jineng,"冲锋");
break;
case 1:
array_push($this->jineng,"嘲讽");
break;
case 2:
array_push($this->jineng,"致死打击");
break;
case 3:
array_push($this->jineng,"盾墙");
break;
case 4:
array_push($this->jineng,"沉默");
break;
}
}
}
然后将做的类加载到一个新的文件名下game.php
造一个新的对象然后进行游戏(实例化对象)
<?php
include("game.class.php");//加载类
$hero = new Hero("张三");//创建英雄
/*$hero->DaGuai();
$hero->Show();
$hero->DaGuai();
$hero->Show();
$hero->DaGuai();
$hero->Show();
$hero->DaGuai();
$hero->Show();
$hero->DaGuai();
$hero->Show();
*/
$hero->XueXi();
$hero->Show();
$hero->XueXi();
$hero->Show();
?>
标签:
原文地址:http://www.cnblogs.com/Duriyya/p/5459676.html