-
biyuan JScript.NET 单用户博客 byblog v1.0
2008-06-05 23:03:37
QUOTE:=============================【基本信息】=================================
程序名称:byblog v1.0
开发环境:Microsoft .NET Framework 1.1.4322.2407 + ACCESS2000
开发语言:JScript.NET
作者昵称:biyuan
作者 Q Q:6010707
作者 MSN:scriptcn@hotmail.com
作者网址:http://biyuan.51js.com/
开发时间:2008年05月30日=============================【程序特点】=================================
1:支持自定义皮肤功能,前台皮肤与程序分离。
具体标签可以参考:./templates/default目录下的skin.html文件
2:数据缓存功能,将部分常用但不常更新的信息缓存,减少查询,提高程序执行效率
3:用户可以自由设置网站访问日志开关,可以很方便的查阅来访者的一些基本信息
4:程序内置3套皮肤,用户可以根据喜好选择,也可以自己开发皮肤文件=============================【使用说明】=================================
上传bin目录至网站根目录;上传其它文件到blog目录
初次安装请自行打开web.config文件设置数据库路径及blog存放目录,
如果文件存放在web根目录,则“<add key="webPath" value="/blog/" />”
应该设置为:“<add key="webPath" value="/" />”。后台登陆地址:admin/login.aspx
管理员帐号:administrator
管理员密码:51js后台对基本设置修改、对皮肤文件修改都必须手动在后台更新缓存才能生效。
演示地址:http://www.tv14.com.cn/weblog/
最新版下载:
ByBlog.rar (543.46 KB)
2008-06-05更新补丁:
update080605.rar (29.79 KB)
Code:
2008-06-05更新:
1,后台增加数据库压缩功能。
2,前台增加RSS功能,对应的标签为:{$menu_rss}、{$history_rss}
请参阅templates/default/skin.html
3,修正一些已知BUG。
更新方法:
将文件覆盖即可! -
[论坛] 有聊:原创一个树
2007-12-27 16:50:28
CODE:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>byTree demo!</title>
<style type="text/css">
html, body {
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size:12px;
}
#tree {
width:200px;
height:500px;
border:1px solid #cccccc;
overflow:auto;
white-space:nowrap;
float:left;
}
#ifr {
width:600px;
height:500px;
border:1px solid #cccccc;
border-left:0px;
float:left;
}
</style>
</head>
<body>
<div id="tree"></div>
<iframe name="tree" id="ifr" frameborder="0" src="about:blank"></iframe>
<script language="JavaScript" src="_class_tree.js"></script>
<script language="JavaScript">
///////////class start/////////////
function $(s){
return document.getElementById(s);
}
function byTree(){
var s = this;
this.tree = new Array();
this.path = "http://www.wscript.cn/demo/script/javascript/tree/images";
this.name = "tree";
this._push = function (c){
var tree_ = new Array();
for(var i = 0; i < this.tree.length; i ++){
if(this.tree[i][1] == c){
tree_.push(this.tree[i]);
};
};
return tree_;
};
this._next = function (c){
var k = 0;
for(var i = 0; i < this.tree.length; i ++){
if(this.tree[i][1] == c){
k ++;
};
};
return k != 0;
};
this.show = function(){
(function (){
var head = document.getElementsByTagName("head")[0];
var link = document.createElement("link");
link.rel = "stylesheet";
link.href = s.path + "/style.css";
link.type = "text/css";
link.media = "all";
head.appendChild(link);
$(s.name).className = "byTree";
})();
$(s.name).innerHTML = "<div id='" + s.name + "_0'><img src='" + s.path + "/nolines_minus.gif' onclick=\"byTree.prototype._click.call(this, '" + s.name + "');\" /><img src='" + s.path + "/base.gif' onclick=\"byTree.prototype._click.call(this.previousSibling, '" + s.name + "');\" /><a href='javascript:void(0);' onclick=\"byTree.prototype._click.call(this.previousSibling.previousSibling, '" + s.name + "');\">" + s.tree[0][2] + "</a></div><div></div>";
(function _open(k, c, e){
var __tree = s._push(k);
for(var i = 0; i < __tree.length; i ++){
var __next = s._next(__tree[i][0]);
var __plus = (i == __tree.length - 1) ? "plusbottom" : "plus";
__plus = __next ? __plus : __plus.replace(/plus/, "join");
var __treeT = document.createElement("div");
__treeT.id = s.name + "_" + __tree[i][0];
var _tree_p = e + "<img src='" + s.path + "/" + c + ".gif' />";
__treeT.innerHTML += _tree_p + "<img src='" + s.path + "/" + __plus + ".gif' onclick=\"byTree.prototype._click.call(this, '" + s.name + "');\" /><img src='" + s.path + "/" + (__next ? "folder" : "page") + ".gif' onclick=\"byTree.prototype._click.call(this.previousSibling, '" + s.name + "');\" />";
__treeT.innerHTML += "<a href='" + __tree[i][3] + "' target='" + s.name + "' onclick=\"byTree.prototype._click.call(this.previousSibling.previousSibling, '" + s.name + "');\">" + __tree[i][2] + "</a>";
$(s.name + "_" + k).nextSibling.appendChild(__treeT);
var __treeR = document.createElement("div");
__treeR.className = "hide";
$(s.name + "_" + k).nextSibling.appendChild(__treeR);
_open(__tree[i][0], (/bottom/.test(__plus)) ? "empty" : "line", _tree_p);
};
})(s.tree[0][0], "empty", "");
};
};
byTree.prototype._click = function (){
if(this.parentNode.nextSibling.className == "hide"){
this.parentNode.nextSibling.className = "";
this.src = this.src.replace(/plus/, "minus");
this.nextSibling.src = this.nextSibling.src.replace(/folder/, "folderopen");
}
else{
this.parentNode.nextSibling.className = "hide";
this.src = this.src.replace(/minus/, "plus");
this.nextSibling.src = this.nextSibling.src.replace(/folderopen/, "folder");
};
for(var i = 0; i < $(arguments[0]).getElementsByTagName("a").length; i ++){
$(arguments[0]).getElementsByTagName("a")[i].style.backgroundColor = "";
$(arguments[0]).getElementsByTagName("a")[i].style.color = "";
};
this.parentNode.getElementsByTagName("a")[0].style.backgroundColor = "#3366cc";
this.parentNode.getElementsByTagName("a")[0].style.color = "#ffffff";
};
////////class end/////////
var t = new byTree();
t.tree = [
[0, -1, "我的电脑"],
[1, 0, "技术", "javascript:void(0);"],
[2, 0, "门户", "javascript:void(0);"],
[3, 0, "影视", "javascript:void(0);"],
[4, 1, "无忧脚本", "javascript:void(0);"],
[5, 1, "CSDN", "http://www.csdn.net/"],
[6, 1, "蓝色理想", "http://www.blueidea.com/"],
[7, 1, "IECN", "http://www.iecn.net/"],
[8, 2, "网易", "http://www.163.com/"],
[9, 2, "雅虎", "http://www.yahoo.com.cn/"],
[10, 2, "新浪", "http://www.sina.com.cn/"],
[11, 3, "优酷", "http://www.youku.com/"],
[12, 3, "酷六", "http://www.ku6.com/"],
[13, 3, "土豆", "http://www.tudou.com/"],
[14, 3, "易视", "http://www.wscript.cn/v/y/"],
[15, 4, "网站", "http://www.51js.com/"],
[16, 4, "论坛", "http://bbs.51js.com/"],
[17, 0, "WScript", "http://www.wscript.cn/blog/"]
];
t.name = "tree";
t.show();
t = null;
</script>
</body>
</html>
byTree.rar
(2007-12-27 16:50:28, Size: 9.41 KB, Downloads: 100) -
[论坛] 基于JavaScript的TYMusicBoxV11
2007-11-20 00:27:23
喜欢网上听音乐的就down吧
[ 本帖最后由 biyuan 于 2007-11-20 01:51 编辑 ]
TYMusicBoxV11.rar
(2007-11-20 01:51:16, Size: 1010 KB, Downloads: 173) -
[论坛] 漂亮的层模拟窗体MoveWindow(未封装),基本功能兼容FF^_^
2007-04-27 01:23:25
CODE:
<html>[ 本帖最后由 biyuan 于 2007-4-27 01:44 编辑 ]
<head>
<title>MoveWindow_Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<style type="text/css">
body {
margin:0px;
}
a:link,a:visited {
color:#450600;
text-decoration:none;
cursor:default;
}
a:hover {
color:#ff0000;
text-decoration:none;
cursor:default;
}
</style>
</head>
<body>
<div id="_alert" style="
position:absolute;
filter:progid:DXImageTransform.Microsoft.DropShadow(color=#c0c0c0,offX=4,offY=4,positives=true);
z-index:100;
top:130px;
left:220px;
width:300px;
font-size:12px;
border:1px solid #cccccc;">
<div style="
filter:Alpha(opacity=50);
width:82%;
height:26px;
float:left;
cursor:move;
line-height:26px;
background:#f0f0f0;
text-indent:3px;"
onmousedown="run('_alert',event);">
<font style="font-size:16px;font-family:wingdings">î</font> <b>无忧脚本论坛</b>
</div>
<div style="
filter:Alpha(opacity=50);
width:18%;
height:26px;
float:left;
font-size:14px;
font-family:webdings;
cursor:default;
line-height:26px;
background:#fffeee;
text-align:right;">
<a href="#" onclick="mix('_alert','_alert_c');">0</a><a href="#" onclick="max('_alert','_alert_c',this);">1</a><a href="#" onclick="cos('_alert');">r</a>
</div>
<div id="_alert_c" style="
filter:Alpha(opacity=50);
width:100%;
height:150px;
padding:10px;
background:#fffff3;
border-top:1px solid #cccccc;">
<br /><br />无忧脚本是个什么组织?<br />
是个学习、讨论、研究JavaScript的地方!
</div>
</div>
<script language="JavaScript">
document.body.oncontextmenu = function(){
window.event.returnValue = false;
}
document.body.onselectstart = function(){
return false;
}
var _ty,_tx,_cy,_cx,_sw_so,_sh_sb;
function run(obj,event){
var _so = document.getElementById(obj);
var _sc = true;
var _sy = event.clientY;
var _sx = event.clientX;
_so.style.background = "#cccccc";
if(_so.style.width == document.body.clientWidth - 4 + "px"){
_sc = false;
}
_so.onmouseup = function(){
_sc = false;
_so.style.background = "";
}
_so.onmousemove = function(){
if(_sc == true){
var _xy = event.clientY - _sy;
var _xx = event.clientX - _sx;
this.style.top = parseInt(this.style.top) + _xy + "px";
this.style.left = parseInt(this.style.left) + _xx + "px";
_sy = event.clientY;
_sx = event.clientX;
}
}
}
function mix(obj1,obj2){
var _so = document.getElementById(obj1);
var _sb = document.getElementById(obj2);
if(_sb.style.display == ''){
_ty = _so.style.top;
_tx = _so.style.left;
_sb.style.display = 'none';
_so.style.left = "0px";
_so.style.top = document.body.clientHeight - 32 + "px";
}
else {
_sb.style.display = '';
_so.style.left = _tx;
_so.style.top = _ty;
}
}
function max(obj1,obj2,obj3){
var _so = document.getElementById(obj1);
var _sb = document.getElementById(obj2);
var _sw = document.body.clientWidth - 4 + "px";
var _sh = document.body.clientHeight - 32 + "px";
if(_so.style.width != _sw){
_cy = _so.style.top;
_cx = _so.style.left;
_sw_so = _so.style.width;
_sh_sb = _sb.style.height;
_so.style.top = "0px";
_so.style.left = "0px";
_so.style.width = _sw;
_sb.style.height = _sh;
obj3.innerHTML = "2";
}
else{
_so.style.width = _sw_so;
_sb.style.height = _sh_sb;
_so.style.top = _cy;
_so.style.left = _cx;
obj3.innerHTML = "1";
}
}
function cos(obj){
document.getElementById(obj).style.display = "none";
}
</script>
</body>
</html> -
[论坛] 封装一个title提示效果(兼容Firefox)
2007-04-25 19:48:42
CODE:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">[ 本帖最后由 biyuan 于 2007-4-26 09:13 编辑 ]
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>LandscapingTitle demo!</title>
<script language="JavaScript">
window.onload = function(){
var by_title_tmp = new String();
var tags = document.getElementsByTagName("a");
for(var i = 0 ; i < tags.length ; i ++){
tags[i].onmouseover = function(event){
event = event ? event : window.event;
var by_title_div = document.createElement("div");
by_title_div.id = "by_title_div";
by_title_div.style.position = "absolute";
by_title_div.style.border = "1px solid #cccccc";
by_title_div.style.padding = "5px";
by_title_div.style.backgroundColor = "#f3f3f3";
by_title_div.style.fontSize = "12px";
by_title_div.innerHTML = "<img src='http://bbs.51js.com/images/default/red_folder.gif' align='absmiddle' /> " + this.title;
by_title_tmp = this.title;
this.title = "";
document.getElementsByTagName("body")[0].appendChild(by_title_div);
(document.documentElement.clientHeight - event.clientY - 20 > document.getElementById("by_title_div").clientHeight) ? by_title_div.style.top = (event.clientY + 20 + "px") : by_title_div.style.bottom = "40px";
(document.body.clientWidth - event.clientX > document.getElementById("by_title_div").clientWidth) ? by_title_div.style.left = (event.clientX + "px") : by_title_div.style.right = "0px";
}
tags[i].onmouseout = function(){
document.getElementsByTagName("body")[0].removeChild(document.getElementById("by_title_div"));
this.title = by_title_tmp;
}
}
}
</script>
</head>
<body>
<div style="width:100%;text-align:right"><a href="#" title="提示一提示一提示一">为了我们的身心健康为了我们的身心健康为了我们的身心健康</a></div><br /><br /><br />
<a href="#" title="提示一">我们应该</a><br /><br />
<a href="#" title="提示三">多抽烟</a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<a href="#" title="提示四">多喝酒</a><br />
</body>
</html> -
[转帖]经典论坛的一个有趣的代码——让页面元素飞起来
2006-12-17 06:32:12
随便一个网站
地址栏输入:
javascrīpt:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);覆盖网址!回车
-
[原创]使用404自定义错误页实现静态文件映射
2006-12-12 19:52:52
<%
on Error Resume Next
dim sUrl,s1,s2,s3,s4
sUrl = Split(Request.ServerVariables("QUERY_STRING"),"/")(4)
sUrl = Split(sUrl,".")(0)
sUrl = Split(sUrl,"_")
s1 = sUrl(0)
s2 = sUrl(1)
Server.execute(s1 & "/" & s1 & "_" & s2 & ".asp")
if Err then
Err.clear
Response.write "您请求的文件未找到!点<a href='/'>这里</a>返回首页。"
Response.End
End if
%> -
[原创]巧妙的让web来执行“计划任务”
2006-12-11 17:06:24
updateIndex.asp:
<scrīpt language="Jscrīpt" runat="server">
var fso = new ActiveXObject("scrīpting.FileSystemObject");
var fts = fso.GetFile(Server.MapPath("index.shtml"));
var s = new Date(fts.DateLastModified).getDate();
fso = null;
var t = new Date().getDate();
if(s == t){
Response.Write("var typeString = '你找到这里来干嘛?';");
Response.End();
}
else{
//省略生成index.shtml的代码
Response.Write("setTimeout(\"parent.location.reload();\",5000);");
Response.End();
}
</scrīpt>在index.shtml页面引用方式:
<scrīpt language="Javascrīpt" src="updateIndex.asp"></scrīpt>
-
原创一个PHP分页类(类似于Discuz!分页效果)
2006-12-06 17:47:57
<?php
class Page{
var $pagesize;
var $numrows;
var $pages;
var $page;
var $offset;
var $url;
function pagedate($str1,$str2,$str3){
global $pagesize,$offset;
$this->pagesize = $str1;
$this->numrows = $str2;
$this->url = $str3;
$this->pages = intval($this->numrows/$this->pagesize);
if($this->numrows%$this->pagesize){
$this->pages ++;
}
$nPage = $_GET['page'];
if($nPage != null && !preg_match("/^\d+$/",$nPage)){
echo("错误的参数类型!");
return false;
}
if(isset($nPage)){
$this->page = intval($nPage);
}
else{
$this->page = 1;
}
if($nPage < 1 || $nPage > $this->pages){
$this->page = 1;
}
$this->offset = $this->pagesize * ($this->page - 1);
$pagesize = $this->pagesize;
$offset = $this->offset;
}
function pageshow(){
echo "[" . $this->numrows . "][" . $this->page . "/" . $this->pages . "]";
if($this->page > 4){
echo "<a href='" . $this->url . "=1'><font style='font-family:Webdings;'>7</font></a>";
}
if($this->page != 1){
$pageup = $this->page - 1;
echo "<a href='" . $this->url . "=" . $pageup . "'><font style='font-family:Webdings;'>3</font></a>";
}
if($this->page <= 3){
for($i = 1 ; $i <= 10 ; $i ++){
if($i <= $this->pages){
if($i == $this->page){
echo "[" . $i . "]";
}
else{
echo "[<a href='" . $this->url . "=" . $i . "'>" . $i . "</a>]";
}
}
}
}
else if($this->page >= $this->pages-6){
for($i = $this->pages-9 ; $i <= $this->pages ; $i ++){
if($i == $this->page){
echo "[" . $i . "]";
}
else{
echo "[<a href='" . $this->url . "=" . $i . "'>" . $i . "</a>]";
}
}
}
else{
for($i = $this->page-3 ; $i <= $this->page+6 ; $i ++){
if($i == $this->page){
echo "[" . $i . "]";
}
else{
echo "[<a href='" . $this->url . "=" . $i . "'>" . $i . "</a>]";
}
}
}
if($this->page != $this->pages && $this->pages != 0){
$pagedown = $this->page + 1;
echo "<a href='" . $this->url . "=" . $pagedown . "'><font style='font-family:Webdings;'>4</font></a>";
}
if($this->page < $this->pages-6){
echo "<a href='" . $this->url . "=" . $this->pages . "'><font style='font-family:Webdings;'>8</font></a>";
}
}
}
?>
$showpage = new Page;
//参数依次为:每页记录数,总记录数,URL地址
$showpage->pagedate(20,$crs[0],"?list.php?page");
//这里写查询语句, limit $offset,$pagesize
//分页效果
$showpage->pageshow(); -
通过简易的前台代码实现无限二级域名转向
2006-11-07 16:34:22
只要空间支持泛域名解析,无须服务端脚本语言和DNS,通过前台代码便可实现无限二级域名的构造:
<html>
<head>
<title>碧原网络免费二级域名</title>
<head>
</head>
<body>
<scrīpt language="Javascrīpt">
<!--
//全局变量
var cUrl = "http://www2.17389.com/" //当处理失败时跳转的站点或目录
var Url = "17389"; //顶级域名的关键字,这里是www.17389.com
var sUrl = location.href; //获取当前用户输入地址
var oUrl = ((sUrl.split(".")[0]).split("//")[1]); //对用户获取的地址进行分割
var xUrl = false; //创建一个全局变量,方便判断记录集是否存在
//用户信息
var User = new Array();
User[0] = new Array("biyuan","http://aoao.52ui.com/biyuan/","碧原在线");
User[1] = new Array("fhonline","http://www.17389.com","飞鸿网络");
User[2] = new Array("51js","http://www.51js.com/","无忧脚本");
User[3] = new Array("ucren","http://www.ucren.com/","游戏人");
User[4] = new Array("aoao","http://aoao.52ui.com/","无忧嗷嗷");
//判断顶级域名合法性
if (sUrl.split(".")[1] != Url){
location.href = cUrl;
}
//匹配数据,执行跳转
else {
for (var j=0;j < User.length;j++){
if (oUrl == User[j][0]){
document.write ("正在加载" + User[j][2] + ",请稍候...."); //跳转时显示的信息
document.title = User[j][2]; //跳转时标题栏的信息
xUrl = User[j][1]; //对全局变量进行赋值
setTimeout("location.href = xUrl",5000); //停留5秒后执行跳转
}
}
}
//记录不存在提示错误信息
if(!xUrl){
document.write("找不到该域名.停留10秒以后跳转到<a href='" + cUrl + "'>碧原网络</a>");
setTimeout("location.href = cUrl",10000);
}
//-->
</scrīpt>
</body>
</html>
当然,也可以通过后台语言结合数据库来实现注册、查询、管理等功能,我只是给一些有需要的朋友提供一个思路,欢迎大家共同完善。
-
PHP中的类-什么叫类
2006-10-24 13:08:20
在阐述类的概念之前我们来先说说面向对象编程的概念:面向对象的程序设计(Object-Oriented Programming,简记为OOP)立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。有人可能会说PHP不是一个真正的面向对象编程的语言, PHP 是一个混合型 语言,你可以使用面向对象编程,也可以使用传统的过程化编程。然而,对于大型项目的开发,你可能想需要在PHP中使用纯的面向对象编程去声明类,而且在你的项目开发只用对象和类。随着项目越来越大,使用面向对象编程可能会有帮助,面向对象编程代码很容易维护,容易理解和重复使用,这些就是软件工程的基础。在基于Web的项目中应用这些概念就成为将来网站成功的关键。
对象(Object)是问题域或实现域中某些事物的一个抽象,它反映此事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。 关于对象要从两方面理解:一方面指系统所要处理的现实世界中的对象;另一方面对象是计算机不直接处理的对象,而是处理相应的计算机表示,这种计算机表示也称为对象。简单的来说,一个人就是一个对象,一个尺子也可以说是个对象。当这些对象可以用数据直接表示时,我们就称他为属性,尺子的度量单位可以是厘米,公尺或英尺,这个度量单位就是尺子的属性。
在PHP里我们可以定义一个类,类(Class)就是指变量与一些使用这些变量的函数的集合。PHP是一种松散类型的语言,所以通过类型重载不起作用,通过参数的个数不同来重载也不起作用。 有时在面向中重载构造函数非常好,这样你可以通过不同的方法创建对象(传递不同数量的参数)。在PHP中就是通过类来实现的。
在PHP中是通过类来完成信息封装的,在PHP中定义类的语法是:
<?php
class Class_name // 在面向对象编程类中,习惯上类的第一个字符为大写,并且必须符合变量的命名规则。
{
//函数与变量的集合
}
?>
在定义类时你可以按自已的喜好的格式进行定义,但最好能保持一种标准,这样开发起来会更有效些。
数据成员在类中使用"var"声明来定义,在给数据成员赋值之前,它们是没有类型的。一个数据成员可以是一个整数,一个数组,一个相关数组(Associative Array)或者是一个对象。
下面是一个类定义的实际例子:
<?php
class Student
{
var $str_Name; //姓名
var $str_Sex; //性别
var $int_Id; //学号
var $int_English; //英语成绩
var $int_maths; //数学成绩
}
?>
这是一个很普通定义类的简单例子,用于显示学生的学习成绩,类名为Student,Student类包涵了一个学生的基本属性:姓名、性别、学号、英语成绩和数学成绩。
function我们称之为在类中被定义的函数,在函数中访问类成员变量时,你应该使用$this->var_name,其中var_name指的是类中被声明的变量,否则对一个函数来说,它只能是局部变量。 我们先定义一个Input()的函数,用来给实例中的对象赋以初值:
function Input ( $Name, $Sex, $Id, $Englis, $Maths)
{
$this->str_Name=$Name;
$this->str_Sex =$Sex;
$this->int_Id =$Id;
$this->int_Englis=$English;
$this->int_Maths=$Maths;
}
现在我们再定义一个叫“ShowInfo()”的函数,用于打印学生的基本情况:
function ShowInfo() //定义ShowInfo()函数
{
echo (“姓名:$this->str_Name<br>
”);
echo (“性别:$this->str_Sex <br>
”);
echo (“学号:$this->int_Id <br>
”);
echo (“英语成绩:$this->int_English <br>
”);
echo (“数学成绩:$this->int_Maths <br>
”);
}
而定义好的类则必须使用new关键词来生成对象:
$A_student=new Student;
例如我们要为一个名为$Wing的对象创建实例,并进行赋值,可以使用下面的代码:
$Wing =new Student; //用new关键词来生成对象
$Wing ->Input (“Wing”,”男”,33,95,87);
//分别输入Wing的姓名、性别、学号、英语成绩、数学成绩,其中姓名和性别是字符型变量,所以需要用双引号,其它为数值型变量则不需要。
通过下面这段完整的源代码,我们就可以很清楚的看到类在PHP是怎么被运用的:
<?php
class Student
{
var $str_Name;
var $str_Sex;
var $int_Id;
var $int_English;
var $int_maths;
function Input ( $Name, $Sex, $Id, $English, $Maths)
{
$this->str_Name=$Name;
$this->str_Sex =$Sex;
$this->int_Id =$Id;
$this->int_English=$English;
$this->int_Maths=$Maths;
}
function ShowInfo()
{
echo (“姓名:$this->str_Name<br>
”);
echo (“性别:$this->str_Sex <br>
”);
echo (“学号:$this->int_Id <br>
”);
echo (“英语成绩:$this->int_English <br>
”);
echo (“数学成绩:$this->int_Maths <br>
”);
}
}
$Wing = new Student;
$Wing->Input (“Wing”,”男”,33,95,87);
$Paladin = new Student;
$Paladin->Input (“paladin”,”女”,38,58,59.5);
$Wing->ShowInfo();
$Paladin->ShowInfo();
?>
执行结果应是这样的:
姓名:Wing
性别:男
学号:33
英语成绩:95
数学成绩:87
姓名:Paladin
性别:女
学号:38
英语成绩:58
数学成绩:59.5
PHP现有的版本较以前的版本在对面向对象编程的支持方面有了很大的改善,但支持的还不是很完整,不过现阶段PHP对面向对象编程语言提供的支持不但有利于我们设计程序的结构,对于对程序的维护也能提供很大的帮助。
标题搜索
我的存档
数据统计
- 访问量: 3237
- 日志数: 14
- 建立时间: 2006-10-24
- 更新时间: 2008-06-05


