如何在 PHP 中返回多个值?

下面的错误代码:


$ejString = (str_replace(' ', '', file_get_contents('ej.txt')));

$find_tr = strpos($ejString, 'JUMLAHRP');


function find_nilai ($ejString, $find_tr){

    while ( $find_tr != false) {

        $find_tr = strpos($find_tr, 'JUMLAHRP');

        $ejString = substr($ejString, $find_tr +8);

        echo get_string_between($ejString, $start, $end);

    }

    return $find_tr;

    return $ejString;

}

// var_dump ($find_tr);

find_nilai ($ejString, $find_tr);

我需要运行这段代码,我不知道如何在 php 中返回多个值


慕神8447489
浏览 107回答 3
3回答

繁花不似锦

return 语句会终止函数的执行,因此您在另一个条件下的 return 将永远不会被调用。您可以在此文档页面中查看更多信息要返回多个值,您可以使用数组或哈希,组合您需要的值,然后返回该变量。或者考虑组合多个函数。

人到中年有点甜

您可以根据需要围绕任意数量的数据属性创建包装类,然后声明该类的新实例,用数据填充它,然后返回该实例。一旦它被另一端接收,就可以查询它的属性值。$ejString = (str_replace(' ', '', file_get_contents('ej.txt')));$find_tr = strpos($ejString, 'JUMLAHRP');class myData {    public $find_tr;    public $ejString;}function find_nilai ($ejString, $find_tr){    while ( $find_tr != false) {        $find_tr = strpos($find_tr, 'JUMLAHRP');        $ejString = substr($ejString, $find_tr +8);        echo get_string_between($ejString, $start, $end);    }    $obj = new myData();    $obj->find_tr = $find_tr;    $obj->ejString = $ejString;    return $obj;}// var_dump ($find_tr);$test = find_nilai ($ejString, $find_tr);echo $test->find_tr;echo $test->ejString;

慕村9548890

由于您只需要返回两个元素,我建议您使用数组,$ejString = (str_replace(' ', '', file_get_contents('ej.txt')));$find_tr = strpos($ejString, 'JUMLAHRP');function find_nilai ($ejString, $find_tr){    while ( $find_tr != false) {        $find_tr = strpos($find_tr, 'JUMLAHRP');        $ejString = substr($ejString, $find_tr +8);        echo get_string_between($ejString, $start, $end);    }    return array($find_tr, $ejString);}$result = find_nilai ($ejString, $find_tr);var_dump($result[0]);var_dump($result[1]);
打开App,查看更多内容
随时随地看视频慕课网APP