返回函数值问题

时间:2017-01-21 11:07:26

标签: php

我的一个函数返回数据时出现问题,这是我的代码:

function getLinks($host, $hash, $count) {
    require_once('api-sape.php');
    $sape        = new SapeApi();
    $userId      = $sape->login(SAPE_USER, SAPE_PASS);  
    // query the database for the proper strings to return
    $sql1 = DB::getInstance()->select("SELECT * FROM `purchased` WHERE `purchased_site_hash`='".$hash."' LIMIT ".$count."");
    $results = "";
    foreach ($sql1 as $row) {
              $sq2 = DB::getInstance()->selectValues("SELECT * FROM `projects` WHERE `project_sape_id`='".$row['purchased_project_id']."'");
              //echo "URL: " . $sq2['project_url'];
              //echo "<br />";
              //echo "Text: " . $row['purchased_text'];
              $url    = $sq2['project_url'];
              $txt    = $row['purchased_text'];
              // do some string manipulation
              $arr    = array("#a#" => '<a href="'.$url.'">', "#/a#" => "</a>");
              $result = strtr($txt, $arr);
              //echo $result;
              $results = $result;
              echo $result;
    }
    print_r($results);
    return [$results];
     return [
        'some text <a href="link">text</a> some text',
        'some text <a href="link">text</a> some text'
    ]; 
}

我以这种格式返回值:

 return [
    'some text <a href="link">text</a> some text',
    'some text <a href="link">text</a> some text'
]; 

根据字符串的数量,&#34;返回&#34;应该从上面返回字符串的数量,在这种情况下有2个字符串,但它只返回1,如果我回显: echo $ result; 在foreach它很好,它&& #39; s得到值返回[]我遇到问题,任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:1)

小心!您将返回包含$results数组的数组,您应该返回$results

[$val]array($val)功能的快捷方式。所以在你的情况下,你将返回一个包含数组的数组。因此,如果您确实想要返回一个数组,则必须访问返回数组的第一个值([0])。

来源:http://php.net/manual/en/language.types.array.php