专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » class:php理解class »正文

class:php理解class

来源: 发布时间:星期日, 2008年12月21日 浏览:126次 评论:0
建立个类很简单

<?php
my_ {}
?>
类到底干什么呢?很多人都是什么黑匣子我在这里称它为个独立整体我们只知道类名而不知道里面有什么东西那么该如何使用这个类呢?
首先:要知道它里面是否定义了公共变量--专业术语上称它为“属性”
其次:要知道它里面定义了什么--专业术语中称它为“思路方法”
我都被这些专业术语搞糊涂了所以干脆不理它了

类中如何定义公共变量它有什么作用呢?

很简单我们来扩充 my_

<?php
my_
{
var $username;
}
?>
看上面很简单我们定义了个公共变量只是用 var+空格+普通变量名 构成它有什么用呢?考虑如果我们要访问变量是不是要先 global 下呢?这个想实现效果也是如此它是想让这个类中所有都能访问它而它区别于个地方是类外部也可以访问这个变量我随后再讲外部如何访问它还有个区别不能用复杂语句给这个变量赋值(具体等理解了类以后自己去看规则)给它个默认值

<?php
my_
{
var $username = "深空";
}
?>
OK定义了个公共变量了接下来定义(也就是所谓“思路方法”)

<?php
my_
{
var $username = "深空";

function show_username
{
}
}
?>
这个定义跟普通定义形式上没什么区别了简单就好定义个打印 $username :

<?php
my_
{
var $username = "深空";

function show_username($username)
{
echo $username;
}
}
?>
到这里可能某些人开始迷糊了呵呵最关键就是这里了看清楚了现在有 3个 $username 了到底哪个是哪个啊~~
所带行参不用解释了吧?这个功能就是打印行参所接收也就是如果:

<?php
show_username("猪头深空");
?>
那么它将打印 “猪头深空” 就这么简单
如何样访问这个?肯定不是我上面说那样直接 show_username(”猪头深空”); 了别急类有类如下:

<?php
$Name = my_;
?>
这样就化上面那个 my_ 类了并把这个对象赋给变量 $Name 你可以这样理解这个变量就代表整个类了呵呵
使用类中:

<?php
$Name->show_username("猪头深空");
?>
晕了为什么这么复杂?还要箭头?其实很形象本来已经把类给了变量 $Name 了是吧?也就是 $Name 代表了这个类然后用个箭头指向类中 show_username 这个就是这么简单也就是说这个是这个类中而不是其他--你就理解为表示个区别吧呵呵

试试看哦打印出 “猪头深空” 这 4个字了你说为什么要这么复杂?用不是也能实现么?我说这么简单你当然看不出好处了我们继续扩充
还有个疑问:刚才说“公共变量”如何点用处都没有呢?为什么这个不会自动接收这个公共变量 var $username 中默认值?也就是如果我使用:

<?php
$Name->show_username($username);
?>
会有什么结果呢?答案是没有任何输出你没有给形参 $username 个值
那么该如何使用这个公共变量?我们来修改下这个类:

<?php
my_
{
var $username = "深空";

function show_username
{
echo $this->username;
}
}
?>
哇靠不是吧这回脸形参都没有了?还多了个$this->晕了不是呵呵其实这也是类个最大方便的处
$this 作用:访问个公共变量或者类里面
访问?这么专业?其实就是用 $this->username 来代替 var $username 而已拉$this 用来介绍说明它是公共可以访问外部东西
试试看:

<?php
$Name->show_username;
?>
看到了吧终于打印 “深空” 这两个字了娃哈哈
我不打印“深空”这两个字我要打印“猪头深空”如何办?很简单我们给这个公共变量重新赋值拉服了你了

<?php
$Name->username = "猪头深空";
?>
这个能明白意思么?$Name->username 表示是类里面这个公共变量等号赋值不用我解释了

我们再来打印看看

<?php
$Name->show_username;
?>
哈哈终于打印“猪头深空”了不错吧很方便吧不用形参也能任意修改打印值哦~~

不过单单打印个名称也太没意思了我们说点欢迎话吧来扩充下这个类创建个名叫 Welcome :

<?php
my_
{
var $username = "深空";

function show_username
{
echo $this->username;
}

function Welcome
{
}
}
?>
实现什么功能好呢?简单点吧就实现在名字前面有 “欢迎” 两个字好了

<?php
my_
{
var $username = "深空";

function show_username
{
echo $this->username;
}

function Welcome
{
echo "欢迎";
$this->show_username;
}
}
?>
第 2次看到 $this 了吧?$this->show_username; 干什么用呢?其实它就是 show_username 这个用 $this 来表示这个在类中并且和 Welcome 平行而不是在其他地方(比如Welcome中)

Welcome 实现功能很简单首先打印两个字”欢迎”然后接下去执行 show_username 打印名字

来试试这个吧:

<?php
$Name->Welcome;
?>
看到了吧打印出“欢迎深空”这 4个字了

可是我要打印“欢迎猪头深空”如何办?我服了你了我们给公共变量 var $username 个值吧:

<?php
$Name->username = "猪头深空";
?>
接下去打印欢迎语:

<?php
$Name->Welcome;
?>
嘿嘿终于打印“欢迎猪头深空”了

如何样?明白了类使用方法了么?好处在于能够类中任意只要用 $this 指出来可以改变个公共变量可以在类中中使用这个公共变量………多了去了应用等待你去发现了
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: