【问题标题】:Combining php function结合php函数
【发布时间】:2013-08-21 10:22:09
【问题描述】:

此代码有效:

    $host = parse_url('http://www.cc.joomla.mywebsite.net/paypal.com/myspace.com/login.php', PHP_URL_HOST);

    $host_names = explode(".", $host);
    print_r($host_names);
    echo "<br>";
    $l = array_slice($host_names, -3);
    print_r($l);
    echo "<br>";

    $subdomain = implode(".", $l);
    echo $subdomain;    //final result


是否可以将功能组合在一行中,例如:

$subdomain = implode(array_slice (explode(".", $host)($host_names, -3)(".", $l);

上面的例子不起作用。我想我以前见过可以组合功能的地方。

提前感谢您的帮助。

【问题讨论】:

  • 你要么很难制定出语法正确的表达式 要么你只是想学习如何编写自己的php.net/language.functions
  • 另外,你的函数的目标是什么?只是为了获取子域?
  • 你可能想看看这个stackoverflow.com/questions/535336/…,无论如何:)
  • @hakre - 我不知道如何组合功能。下面的 deceze 很好地解释了我需要什么。
  • @Fabien - 是获取子域。

标签: php function


【解决方案1】:

只需用您分配给它的表达式替换每个变量:

$host_names = explode(".", $host);
$l = array_slice($host_names, -3);

变成

$l = array_slice(explode(".", $host), -3);

然后

$l = array_slice(explode(".", $host), -3);
$subdomain = implode(".", $l);

变成

$subdomain = implode(".", array_slice(explode(".", $host), -3));

【讨论】:

  • 感谢您的详细解释。正是我需要的信息。
  • hmm,这不会执行有问题的 print_r,也不会回显 br。我想知道它如何符合问题中的要求...... ;)
  • print_r&lt;br&gt; 只是举例。我只需要知道如何在一行中组合多个功能。
【解决方案2】:

您将所有 3 行混合为一条,但应该采用这种格式将 1 个函数的输出合并到另一个函数中。

$subdomain = implode(".",array_slice(explode(".", $host), -3));

【讨论】:

    【解决方案3】:

    您可以“像”那样链接功能。但是,如果您不小心,他们会在意变得难以阅读。和你一样,然后很难找到错误:

    implode(array_slice (explode(".", $host)/* this is not a valid function call */($host_names, -3) /* same here*/ (".", $l);
    

    有太多的函数调用,你真的不希望它们都放在一行中。它不可读。

    您可能想编写自己的函数。: http://php.net/manual/en/functions.user-defined.php

    【讨论】:

      【解决方案4】:

      请试试这个:

      $host_names = implode(".", array_slice(explode(".", $host), -3));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-19
        • 2019-01-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多