在 PHP 函数中使用参数文本

Using argument text in PHP Function

我对 PHP 世界有点陌生,尽管我使用谷歌搜索和手动阅读,但我不能

我目前(从道德上讲!)抓取一个有许多不同类别的网站(我们称它们为 'alpha'、'beta'、'gamma')。

目前,我经历了这些步骤:

  1. 加载文件
  2. 找到正确的 table (php_siomple_dom)
  3. 然后通过元素来获取信息。

    $alpha_one = $element -> find etc;
    $alpha_two = $element -> find etc;
    $alpha_n   = $element -> find etc;
    
    $beta_one  = $element -> find etc;
    $beta _two = $element -> find etc;
    $beta_n    = $element -> find etc;
    
  4. 所有 table 对于 alpha、beta、gamma 都是相同的;因此我想编写一个函数,但我正在努力解决如何在我创建的变量中包含参数名称的问题。这是我的想法,但行不通。

    function grab($argument) {
    
        $argument . "_one" = $element -> find etc;
        $argument . "_two" = $element -> find etc;
        $argument . "_n"   = $element -> find etc;
    
    }
    

因此,我可以使用:

grab('alpha');

grab('beta');

grab('gamma');

无需为每个 table

写出代码

我调查了 'magic methods',但无法使其正常工作。如果某些 PHP 向导可以阐明这一点,我将不胜感激。谢谢你!

只需这样做:

function grab($argument) {
    ${$argument . "_one"} = $element -> find etc;
    ${$argument . "_two"} = $element -> find etc;
    ${$argument . "_n"}   = $element -> find etc;
}

该代码毫无意义。 $argument . "_one" 变量将 ONLY 存在于函数中,并在函数 return 时被销毁。你可能想要更多这样的东西:

function grab($argument) {
    $data = array();
    $data[$argument . "_one"] = ...
    $data[$argument . "_two"] = ...
    etc...
    return ($data);
}

本质上:根据您的 $argument 构建一个包含动态键名的数组,然后 return 整个数组到调用上下文。

$argument 仅存在于函数范围内。在这个函数之外它不会有任何影响。如果您使用的是 class,您可以创建所有可能的变量(不推荐)并调用:

$this->{$argument . "_one"} = ...

或将它们存储在数组变量中(最佳方式):

$this->myArray[$argument . '_one'] = ...