php 类的初始化(1/2)

 更新时间:2016年11月25日 15:55  点击:2246
 代码如下 复制代码

class child
{
    private $parent;
 
    function __construct($parent)
    {
        $this->parent = $parent;
    }
 
    function getnationality()
    {
        return $this->parent->nationality;
    }
}

$parent = new parent('hispanic');
$child = new child($parent);

php教程中是通过类来完成信息封装的,在php中定义类的语法是:
class class_name // 在面向对象编程类中,习惯上类的第一个字符为大写,并且必须符合变量的命名规则。
{

//函数与变量的集合

}
?>

在定义类时你可以按自已的喜好的格式进行定义,但最好能保持一种标准,这样开发起来会更有效些。

数据成员在类中使用"var"声明来定义,在给数据成员赋值之前,它们是没有类型的。一个数据成员可以是一个整数,一个数组,一个相关数组(associative array)或者是一个对象。

下面是一个类定义的实际例子:

 代码如下 复制代码
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

”);
echo (“性别:$this->str_sex

”);
echo (“学号:$this->int_id

”);
echo (“英语成绩:$this->int_english

”);
echo (“数学成绩:$this->int_maths

”);
}

而定义好的类则必须使用new关键词来生成对象:
$a_student=new student;
例如我们要为一个名为$wing的对象创建实例,并进行赋值,可以使用下面的代码:
$wing =new student; //用new关键词来生成对象
$wing ->input (“wing”,”男”,33,95,87);
//分别输入wing的姓名、性别、学号、英语成绩、数学成绩,其中姓名和性别是字符型变量,所以需要用双引号,其它为数值型变量则不需要。 

 代码如下 复制代码
function test()        
{        
    list($a,$b)= explode(" ",microtime());        
    return (float)$a+(float)$b;        
}     

    
      

 代码如下 复制代码
$a=test();       
echo $a;       
$time    = sprintf("%.12f",(double)test()-$a); 

//方法二

 代码如下 复制代码
function ss_timing_start ($name = 'default') {
      global $ss_timing_start_times;
      $ss_timing_start_times[$name] = explode(' ', microtime());
}
function ss_timing_stop ($name = 'default') {
      global $ss_timing_stop_times;
      $ss_timing_stop_times[$name] = explode(' ', microtime());
}
function ss_timing_current ($name = 'default') {
      global $ss_timing_start_times, $ss_timing_stop_times;
      if (!isset($ss_timing_start_times[$name])) {
          return 0;
      }
      if (!isset($ss_timing_stop_times[$name])) {
          $stop_time = explode(' ', microtime());
      }
      else {
          $stop_time = $ss_timing_stop_times[$name];
      }
      // do the big numbers first so the small ones aren't lost
      $current = $stop_time[1] - $ss_timing_start_times[$name][1];
      $current += $stop_time[0] - $ss_timing_start_times[$name][0];
      return $current;
}
ss_timing_start();
/**
以下是你的页面的代码
*/
require_once    'index.php教程'; //index.php是要测试执行时间的页面
/*
页面代码结束
*/
ss_timing_stop();

//方法三

 代码如下 复制代码

class timer
{
var $starttime = 0;
var $stoptime = 0;
var $timespent = 0;

function start(){
$this->starttime = microtime();}
function stop(){
$this->stoptime = microtime();}
function spent(){
if ($this->timespent) {
return $this->timespent;
} else {
$startmicro = substr($this->starttime,0,10);
$startsecond = substr($this->starttime,11,10);
$stopmicro  = substr($this->stoptime,0,10);
$stops教程econd = substr($this->stoptime,11,10);
$start = doubleval($startmicro) + $startsecond;
$stop = doubleval($stopmicro) + $stops教程econd;
$this->timespent = $stop - $start;
return substr($this->timespent,0,8)."秒";
}
}// end function spent();
}//end class timer;
//例子
$timer = new timer;
$timer->start();
/*
你的代码放在此处
*/

$timer->stop();
echo "执行本script共".$timer->spent();

 代码如下 复制代码
function httpget( $url, $followredirects=true ) {
global $final_url;
$url_parsed = parse_url($url);
if ( empty($url_parsed['scheme']) ) {
    $url_parsed = parse_url('http://'.$url);
}
$final_url = $url_parsed;
 
$port = $url_parsed["port"];
if ( !$port ) {
    $port = 80;
}
$rtn['url']['port'] = $port;
 
$path = $url_parsed["path"];
if ( empty($path) ) {
    $path="/";
}
if ( !empty($url_parsed["query"]) ) {
    $path .= "?".$url_parsed["query"];
}
$rtn['url']['path'] = $path;
 
$host = $url_parsed["host"];
$foundbody = false;
 
$out = "get $path http/1.0 ";
$out .= "host: $host ";
$out .= "user-agent:      mozilla/5.0 (windows; u; windows nt 5.1; en-us; rv:1.8.1) gecko/20061010 firefox/2.0 ";
$out .= "connection: close ";
 
if ( !$fp = @fsockopen($host, $port, $errno, $errstr, 30) ) {
    $rtn['errornumber'] = $errno;
    $rtn['errorstring'] = $errstr;
 
}
fwrite($fp, $out);
while (!@feof($fp)) {
 
    $s = @fgets($fp, 128);
    if ( $s == " " ) {
        $foundbody = true;
        continue;
    }
    if ( $foundbody ) {
        $body .= $s;
    } else {
        if ( ($followredirects) && (stristr($s, "location:") != false) ) {
            $redirect = preg_replace("/location:/i", "", $s);
            return httpget( trim($redirect) );
        }
        $header .= $s;
    }
}
 
fclose($fp);
 
return(trim($body));

function getpath($url)
{
$path = parse_url($url,php教程_url_path);
$lastslash = strrpos($path,"/");
return substr($path,1,$lastslash-1);
}
 
echo getpath("http://www.111cn.net/blog/entry-title/?standalone=1");

//

 代码如下 复制代码
function getpathurl() { 
    $folder = explode('/', $_server['script_name']);
    $script_filename = pathinfo($_server['script_name']);
    $request = explode('/', $_server['request_uri']);
    array_shift($folder);
    array_shift($request);
    $final_request = array_diff($request, array_intersect($folder, $request));
    $final_request = array_values($final_request);
    array_clean($final_request);
    $final_request = implode('/', $final_request);
    if ($_server['query_string'] || substr($final_request, -1) == '?') {
        $final_request = substr($final_request, 0, - strlen($_server['query_string']) - 1);
    }
    return $final_request;
}


 

<?php教程
session_start();
//==========================
//作者:biyuan
//时间:2006.07
//联系:qq6010707
//==========================
?>
<html>
<head>
<title>碧原网络php教程+access文章管理系统</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<style type="text/css教程">
body {
margin:0px;
text-align:center;
font-size:12px;
font-family:verdana;
}
td {
font-size:12px;
height:28px;
padding:4px;
font-family:verdana;
}
a:link,
a:visited,
a:active {
color: #005a17; text-decoration: none;
}
a:hover {
color: #ff5a00; text-decoration: underline;
}
</style>
</head>
<body>
<?php
//==================================
//连接数据库教程
//==================================
@$conn = new com("adodb.connection");
$conn->open("driver={microsoft access driver (*.mdb)}; dbq=" . realpath("article.mdb"));
//==================================
//文章导航
//==================================
function article_menu(){
global $conn;
@$sql = "select * from list";
@$rs = $conn->execute($sql);
while(!$rs->eof){
echo "| <a href="?classid=" . $rs->fields[2]->value . "">" . $rs->fields[1]->value . "</a> ";
$rs->movenext();
}
echo "| <a href="?admin=login">后台管理</a> ";
$rs->close();
if(@$_session["articleadmin"] == "by_php_article"){
echo "<br />管理选项-> | <a href="?admin=class">分类管理</a> | <a href="?admin=insert">发表文章</a> | <a href="?admin=list">文章列表</a> | <a href="?admin=logout">退出登陆</a>";
}
}
//==================================
//文章列表:article_list(文章分类id)
//==================================
function article_list($str){
global $conn;
@$sql = "select id,by_title,by_name,by_time,by_count from article where by_class = " . $str . " order by id desc";
@$rs = $conn->execute($sql);
if(!$rs->eof){
echo "<table border="0" cellspacing="1" cellpadding="0" bgcolor="#cccccc"> "
. " <tr bgcolor="#f3f3f3" align="center"> "
. " <td>文章标题</td><td>文章作者</td><td>发表时间</td><td>浏览次数</td> "
. " </tr> ";
while(!$rs->eof){
echo " <tr bgcolor="#ffffff"> "
. " <td><a href="?artid=" . $rs->fields[0]->value . "">" . $rs->fields[1]->value . "</a></td><td>" . $rs->fields[2]->value . "</td><td>" . date("y-m-d h:i:s",$rs->fields[3]->value) . "</td><td>" . $rs->fields[4]->value . "</td> "
. " </tr> ";
$rs->movenext();
}
echo "</table> ";
}
else {
echo "<br />该分类不存在或暂时没有任何文章!";
}
$rs->close();
}
//==================================
//文章详细:article_look(文章id)
//==================================
function article_look($str){
global $conn;
@$sql = "select * from article where id = " . $str;
@$rs = $conn->execute($sql);
@$usql= "update article set by_count = (by_count + 1) where id = " . $str;
$conn->execute($usql);
if(!$rs->eof){
@$body = $rs->fields[5]->value;
$body = str_replace("[url=file://%22,%22%22,$body/]\","",$body[/url]);
echo "<table border="0" width="60%" cellspacing="1" cellpadding="0" bgcolor="#cccccc"> "
. " <tr bgcolor="#f3f3f3" align="center"> "
. " <td style="font-size:14px;font-weight:bold">" . $rs->fields[1]->value . "</td> "
. " </tr> "
. " <tr bgcolor="#f3f3f3" align="center"> "
. " <td>文章作者:" . $rs->fields[2]->value . " | 发表时间:" . date("y-m-d h:i:s",$rs->fields[3]->value) . " | 浏览次数:" . $rs->fields[4]->value . "</td> "
. " </tr> "
. " <tr bgcolor="#ffffff"> "
. " <td>" . $body . "</td> "
. " </tr> "
. " <tr bgcolor="#f3f3f3"> "
. " <td align="right">【 <a href="javascript教程:history.back();">返 回</a> 】 【 <a href="javascript教程:print();">打 印</a> 】 【 <a href="javascript:close();">关 闭</a> 】</td> "
. " </tr> "
. " </table> "
. " <script language="javascript">document.title += "--" . $rs->fields[1]->value . "";</script> ";
}
else {
echo "<br />该文章不存在或已被管理员删除!";
}
$rs->close();

[!--infotagslink--]

相关文章

  • php svn操作类

    以前我们开发大型项目时都会用到svn来同步,因为开发产品的人过多,所以我们会利用软件来管理,今天发有一居然可以利用php来管理svn哦,好了看看吧。 代码如下 ...2016-11-25
  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • idea 访问html页面端口号显示的是63342而不是8080

    这篇文章主要介绍了idea 访问html页面端口号显示的是63342而不是8080,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-11
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • Php文件上传类class.upload.php用法示例

    本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
  • js屏蔽F12审查元素,禁止修改页面代码等实现代码

    有时候我们需要屏蔽客户端的F12,以防菜鸟也可以随意修改我们的代码,也处于源码的保护等操作,这里就为大家分享一下常见的代码...2020-10-03
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • IDEA 2021.2 激活教程及启动报错问题解决方法

    这篇文章主要介绍了IDEA 2021.2 启动报错及激活教程,文章开头给大家介绍了idea2021最新激活方法,关于idea2021启动报错的问题小编也给大家介绍的非常详细,需要的朋友可以参考下...2021-10-15
  • PHP实现无限级分类(不使用递归)

    无限级分类在开发中经常使用,例如:部门结构、文章分类。无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式; 查找分类A下面所有分类包含的文章。1.实现原理 几种常见的实现方法,各有利弊。其中...2015-10-23
  • PHP实现递归无限级分类

    在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。 递归,简单的说就是一段程序代码的重复调用,当把...2015-10-23
  • C#类中static变量用法分析

    这篇文章主要介绍了C#类中static变量用法,实例分析了static变量使用技巧与相关注意事项,需要的朋友可以参考下...2020-06-25
  • mybatis-plus实体类主键策略有3种(小结)

    这篇文章主要介绍了mybatis-plus实体类主键策略有3种(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-27
  • vscode搭建STM32开发环境的详细过程

    这篇文章主要介绍了vscode搭建STM32开发环境的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-02
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • ecshop商品无限级分类代码

    ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25
  • PHP 一个完整的分页类(附源码)

    在php中要实现分页比起asp中要简单很多了,我们核心就是直接获取当前页面然后判断每页多少再到数据库中利用limit就可以实现分页查询了,下面我来详细介绍分页类实现程序...2016-11-25
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • 详解ES6实现类的私有变量的几种写法

    这篇文章主要介绍了详解ES6实现类的私有变量的几种写法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-10