面向对象下

Posted 桃花灬仙人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象下相关的知识,希望对你有一定的参考价值。

面向对象下

 

class Ren{
 public $name;
 public $sex;
 public $birthday;
}

 

构造函数

//写法特殊
//执行特殊
public function Ren(){

}  //第一种代码方式
public function __construct(){
    echo"aaaa";
} //第二种代码方式,魔术方法

$r = new Ren();   //在造对象的时候,自动执行函数中的代码

 

析构函数

public functon __destruct(){

}  //在语句中不在使用创建的对象或变量时,自动销毁,销毁前自动调用改函数

 

例子

<?php        //若整个页面只有php代码,可以不用写结尾
//做一个小游戏
//设置当前页面编码格式为UTF8
header("Content-type:text/html; charset=gbk");

class hero{
    public $name; //名字
    public $blood; //血量
    public $attack; //攻击力
    
    //放技能的方法
    public function jineng(){
        $arr = array(
            array(50,"隔山打牛"),
            array(60,"降龙十八掌"),
            array(45,"九阳神功"),
            array(20,"葵花宝典"),
            array(70,"六脉神剑")
        );
        $gs = count($arr);
        
        $sy = rand(0,$gs-1);
        echo "{$this->name}使用了{$arr[$sy][1]}\n";
        return $arr[$sy][0];
    }
    
    //构造函数
    public function __construct($name,$blood,$gjl){
        $this->name = $name;
        $this->blood = $blood;
        $this->attack = $gjl;
    }
}


//造第一个人
$h1 = new hero("张三",700,15);

//造第二个人
$h2 = new hero("李四",1600,8);

while(true){
    
    //随机一下,是普攻还是放技能
    $sj1 = rand(0,1);
    $gj = 0;  //本次h1能打掉多少血
    echo "{$h1->name}打{$h2->name}\n";
    if($sj1){
        $gj = $h1->jineng();
    }else{
        $gj = $h1->attack+rand(0,20);
    }
    $h2->blood = $h2->blood-$gj;
    echo "{$h1->name}打掉了{$h2->name}的{$gj}血\n";
    echo "******************************\n";
    
    $sj2 = rand(0,1);
    $gj2 = 0;  //本次h2能打掉多少血
    echo "{$h2->name}打{$h1->name}\n";
    if($sj2){
        $gj2 = $h2->jineng();
    }else{
        $gj2 = $h2->attack+rand(0,20);
    }
    $h1->blood = $h1->blood-$gj2;
    echo "{$h2->name}打掉了{$h1->name}的{$gj2}血\n";
    echo "******************************\n";
    
    if($h2->blood<=0){
        echo "{$h1->name}赢了";
        break;
    }else if($h1->blood<=0){
        echo "{$h2->name}赢了";
        break;
    }
    echo "----\n\n\n";
    //休眠
    sleep(3);
}

 

在命令窗口执行代码:Win+R -> cmd -> 输入php+空格+文件所在位置

以上是关于面向对象下的主要内容,如果未能解决你的问题,请参考以下文章

面向面试编程代码片段之GC

PHP面向对象之选择工厂和更新工厂

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)

Scala的面向对象与函数编程

Python面向对象学习之八,装饰器