Hướng dẫn php call function inside function - hàm gọi php bên trong hàm

Có thể bao gồm một chức năng bên trong một chức năng khác không? Để tìm hiểu các chức năng, tôi đang cố gắng tạo một chuỗi chiến đấu bằng PHP. Trình tự sẽ trông như thế này:

  1. Dice sẽ lăn, gán số cho các biến;
  2. Kết quả tấn công Hero1 được in;
  3. Dice sẽ lăn, gán số cho các biến;
  4. Kết quả tấn công Hero1 được in;
  5. Dice sẽ lăn, gán số cho các biến;
  6. Kết quả tấn công Hero1 được in;

Kết quả tấn công ở đây được in;

<?
rollSim();
combatSim();

function rollSim() {
    $hAttack = rand(1,20);
    $mDefend = rand(1,20);
    $mAttack = rand(1,20);
    $hDefend = rand(1,20);
    $mDamage = rand(10,25);
    $hDamage = rand(1,20);
} // end rollSim

function combatSim() {
    rollSim();
    if ($hAttack>$mDefend) {
        print "Hero hit monster for $hDamage damage.<br>";
    } else if ($hAttack<=$mDefend) {
        print "Hero missed monster.";
    }
} // end combatSim

?>

Kết quả tấn công Hero3 được in.Apr 2, 2009 at 4:49

Việc lăn xúc xắc sẽ là một chức năng tự động. Đây là mã:return the rolled numbers rather than setting some variables and trying to use them in your other function. I would return them in an associative array, like this:

function rollSim() {
    $roll['hAttack'] = rand(1,20);
    $roll['mDefend'] = rand(1,20);
    $roll['mAttack'] = rand(1,20);
    $roll['hDefend'] = rand(1,20);
    $roll['mDamage'] = rand(10,25);
    $roll['hDamage'] = rand(1,20);

    return $roll;
}

function combatSim() {
    $roll = rollSim();

    if ($roll['hAttack'] > $roll['mDefend']) {
        print "Hero hit monster for {$roll['hDamage']} damage.<br>";
    } else if ($roll['hAttack'] <= $roll['mDefend']) {
        print "Hero missed monster.";
    }
}

Hỏi ngày 2 tháng 4 năm 2009 lúc 4:49Apr 2, 2009 at 4:56

Hướng dẫn php call function inside function - hàm gọi php bên trong hàm

Hàm rollSim() của bạn sẽ trả về các số cuộn thay vì đặt một số biến và cố gắng sử dụng chúng trong chức năng khác của bạn. Tôi sẽ trả lại chúng trong một mảng kết hợp, như thế này:Paige Ruten

Đã trả lời ngày 2 tháng 4 năm 2009 lúc 4:5636 gold badges175 silver badges196 bronze badges

5

Paige Rutenpaige Ruten

168K36 Huy hiệu vàng175 Huy hiệu bạc196 Huy hiệu Đồng

class myCombat {

    private $hAttack;
    private $mDefend;
    private $mAttack;
    private $hDefend;
    private $mDamage;
    private $hDamage;

    function rollSim() {
        $this->hAttack = rand(1, 20);
        $this->mDefend = rand(1, 20);
        $this->mAttack = rand(1, 20);
        $this->hDefend = rand(1, 20);
        $this->mDamage = rand(10, 25);
        $this->hDamage = rand(1, 20);
    }

    function combatSim() {
        $this->rollSim();
        if($this->hAttack > $this->mDefend)
            echo 'Hero hit monster for ' . $this->hDamage . ' damage.<br />';
        else
            echo 'Hero missed monster';
    }

}

$combat = new myCombat;
$combat->combatSim();

Không, bạn thực sự không thể làm những gì bạn yêu cầu. Ngay cả khi bạn nhúng tuyên bố rollSim() bên trong định nghĩa của combatSim() (mà bạn có thể làm, đó là hợp pháp nhưng không có tác dụng thực sự), các biến bạn đặt trong rollSim() vẫn sẽ là cục bộ và không thể truy cập được bởi combatSim().Apr 2, 2009 at 5:04

Hướng dẫn php call function inside function - hàm gọi php bên trong hàm

Bạn cần một cách tốt hơn để truyền qua thông tin bạn quan tâm. Jeremy Ruten nêu chi tiết một cách tốt. Một cách khác là xác định một đối tượng chịu trách nhiệm mô hình hóa sự kiện chiến đấu của bạn và có cả hai phương thức rollSim()combatSim() trên đó.chaos

Đã trả lời ngày 2 tháng 4 năm 2009 lúc 5:0433 gold badges300 silver badges308 bronze badges

1

Chaoschaos

120K33 Huy hiệu vàng300 Huy hiệu bạc 308 Huy hiệu đồng

Bạn có thể gọi các chức năng từ nhau, chắc chắn ... nhưng tôi nghĩ bạn muốn sử dụng phạm vi của cái này ở một trong cái khác, đúng không?Apr 2, 2009 at 4:54

Phạm vi chia sẻ là một doanh nghiệp lộn xộn. Bạn nên vượt qua các đối số.Kalium

Đã trả lời ngày 2 tháng 4 năm 2009 lúc 4:542 gold badges17 silver badges17 bronze badges

Kaliumkalium

function a()
{
    function b()
    {
        echo 'I am b';
    }
    function c()
    {
        echo 'I am c';
    }
}
a();
b();
c();

4.5942 Huy hiệu vàng17 Huy hiệu bạc17 Huy hiệu đồng

Nếu bạn muốn xác định các chức năng trong hàm trong PHP, bạn có thể làm điều đó như thế này:Jan 24, 2011 at 22:00

Bạn phải gọi hàm cha trước, sau đó các chức năng bên trong.zokibtmkd

Đã trả lời ngày 24 tháng 1 năm 2011 lúc 22:001 gold badge22 silver badges24 bronze badges

ZOKIBTMKDZOKIBTMKD

class Percobaan{

  public function coba(){
    return "return value";
  }

  public function call(){
    //call coba function
    return $this->coba();
  }

} // end of class percobaan

//call the method
$klass = new Percobaan();
echo $klass->call();

2.1631 Huy hiệu vàng22 Huy hiệu bạc24 Huy hiệu đồng

"return value"

Đây là chức năng cuộc gọi ví dụ đơn giản trong hàmOct 17, 2015 at 15:13

Đầu ra sẽ:Mang Jojot

Đã trả lời ngày 17 tháng 10 năm 2015 lúc 15:133 silver badges11 bronze badges

0

Tôi có thể gọi một hàm bên trong một hàm trong PHP không?

Gọi một chức năng từ bên trong được gọi là đệ quy và câu trả lời đơn giản là, vâng. and the simple answer is, yes.

Làm thế nào tôi có thể gọi chức năng PHP bên trong PHP?

Có hai phương pháp để làm điều này.Một được gọi trực tiếp chức năng theo tên biến bằng cách sử dụng khung và tham số và tên kia là bằng cách sử dụng hàm call_user_func () nhưng trong cả hai tên biến của phương thức sẽ được sử dụng.call_user_func ($ var);calling function by variable name using bracket and parameters and the other is by using call_user_func() Function but in both method variable name is to be used. call_user_func( $var );

Làm thế nào tôi có thể gọi một hàm PHP từ một hàm khác?

$ Tid = Gửi ($ myStreet, $ mycity, $ myPostCode);/ * Gọi chức năng gửi ($ a, $ b, $ c) */} Hàm công khai ($ a, $ b, $ c)/ * function send ($ a, $ b, $ c) */{//... Mã để làm điều gì đó bằng cách sử dụng các biến $ a, $ b, $ c ...}

Làm thế nào để bạn gọi bên trong một chức năng?

Approach:..
Viết một chức năng bên trong một hàm khác ..
Thực hiện cuộc gọi đến hàm bên trong trong câu lệnh trả về của hàm bên ngoài ..
Gọi nó là niềm vui (a) (b) trong đó A là tham số ở bên ngoài và B là hàm bên trong ..
Cuối cùng trả về đầu ra kết hợp từ chức năng lồng nhau ..