我怎么能传递一个类作为参数在我的功能通行证PHP类作为参数
到目前为止,我已经试过
$sc = new SampleClass(); SampleFunction($sc); function SampleFunction(&$refClass) { echo $refClass->getValue(); }
这是什么IM做一个简单的例子..我实际上必须在这个示例函数中执行复杂的过程。我没有从示例函数得到任何回应。我究竟做错了什么?谢谢
UPDATE
char.php
class Charss {
var $name=0;
var $hp=500;
var $spd=10;
var $rtime=10;
var $dmg=10;
function __construct($name, $hp, $spd, $rtime , $dmg) {
$this->name = $name;
$this->hp = $hp;
$this->spd = $spd;
$this->rtime = $rtime;
$this->dmg = $dmg;
}
function get_name() {
return $this->name;
}
function set_name($new_name) {
$this->name = $new_name;
}
function get_hp() {
return $this->hp;
}
function set_hp($new_hp) {
$this->hp = $new_hp;
}
function get_spd() {
return $this->spd;
}
function set_spd($new_spd) {
$this->spd = $new_spd;
}
function get_rtime() {
return $this->rtime;
}
function set_rtime($new_rtime) {
$this->rtime = $new_rtime;
}
function get_dmg() {
return $this->get_dmg;
}
function set_dmg($new_dmg) {
$this->dmg = $new_dmg;
}
}
myclass.php
require("char.php");
class Person {
function try_process()
{
$chr1 = new Charss("Player1",500,3,0,50);
$chr2 = new Charss("Player2",500,6,0,70);
while ($chr1->get_hp() > 0 && $chr2->get_hp() > 0)
{
$sth = min($chr1->get_rtime(), $chr2->get_rtime());
if ($chr1->get_rtime() == 0 && $chr2->get_rtime() > 0)
{
exit;
Fight($chr1,$chr2);
$chr1->set_rtime($chr1->get_spd());
}
elseif ($chr2->get_rtime() == 0 && $chr1->get_rtime() > 0)
{
Fight($chr2,$chr1);
$chr2->set_rtime($chr2->get_spd());
}
else
{
Fight($chr1,$chr2); #having trouble with this
$chr1->set_rtime($chr1->get_spd());
}
$chr1->set_rtime($chr1->get_rtime() - $sth);
$chr2->set_rtime($chr2->get_rtime() - $sth);
}
}
function Fight($atk,$def)
{
$def->set_hp($def->get_hp() - $atk->get_dmg());
echo $atk->get_name() . " attacked " . $def->get_name() . " for " . $atk->get_dmg() . " damage";
}
}
所以即时调用按钮的功能try_process点击
如果您的更新已经完成,现在你的问题是,你不能简单地调用'扑灭($ ATK,$ DEF)',而是需要调用它的形式'$这个 - >扑灭( $ atk,$ def)',因为它是该类的成员。 – mkgrunder 2012-02-25 08:16:54
另外,您在'Charss :: get_dmg()'中使用了属性'$ get_dmg'(而不是'$ dmg'),该属性不存在。我编辑了使用'$ this'的代码,以及确实存在的属性,现在它为我运行。 :) – mkgrunder 2012-02-25 08:26:41
我发现这个希望弄清楚如何传递_class_而不是class_的_instance。 – 2016-06-09 19:29:29