在一个类中组合三个函数的输出,然后显示最终输出

时间:2018-06-01 19:46:47

标签: php

我试图理解类和函数是如何工作的。我试图做一个例子,只是将两个不同的变量组合在一起形成一个,然后输出它。

类中有3个函数 - 一个用于生成随机数,另一个用于生成随机字,最后一个用于组合这两个函数的输出。

有谁可以指出我做错了什么?

<?php
class generateTicket
{

    public function numbers()
    {
        $randomnum = number_format(random_int(1000, 9999) / 100, 2);
    }


    public function words()
    {
        $randomword = bin2hex(openssl_random_pseudo_bytes(8));
    }

    public function combined()
    {
        $A = $this->numbers($randomnum);
        $B = $this->words($randomword);
        echo $A . "-" . $B;
    }

}

$class = new generateTicket();
$class->combined();
?>

1 个答案:

答案 0 :(得分:1)

您在组合方法中传递未知变量。 $ randomnum和$ randomword在以下行中未定义:

public function combined()
{
    $A = $this->numbers($randomnum);
    $B = $this->words($randomword);
    echo $A . "-" . $B;
}

你有几个选择:

一种选择是返回变量:

public function numbers()
{
    return number_format(random_int(1000, 9999) / 100, 2);
}


public function words()
{
    return bin2hex(openssl_random_pseudo_bytes(8));
}

public function combined()
{
    $A = $this->numbers();
    $B = $this->words();
    echo $A . "-" . $B;
}

另一种选择如下:

public function numbers()
{
    $this->randomnum = number_format(random_int(1000, 9999) / 100, 2);
}


public function words()
{
    $this->randomword = bin2hex(openssl_random_pseudo_bytes(8));
}

public function combined()
{
    $this->numbers();
    $this->words();
    echo $this->randomnum . "-" . $this->randomword;
}