通过一次调用PHP调用2个函数

时间:2015-07-08 23:00:47

标签: php function

如何通过PHP中的单个调用调用两个函数?

function 1() {
  // do stuff
}

function 2() {
  // do other stuff
}

然后我想通过一次调用来调用这两个函数

(calling_functions_1_and_2($string));

我该怎么做?

阐述:

此功能会删除任何网址

的字符串
function cleaner($url) {
  $U = explode(' ',$url);

  $W =array();
  foreach ($U as $k => $u) {
if (stristr($u,'http') || (count(explode('.',$u)) > 1)) {
  unset($U[$k]);
  return cleaner( implode(' ',$U));
}
}
  return implode(' ',$U);
}

此功能会删除任何特殊字符等字符串

function clean($string) {
   return $string = preg_replace('/[^A-Za-z0-9\-\']/', '', $string); // Removes special chars.
}

这些函数执行的字符串是在JSON数组中。

所以调用其中一个函数

clean($searchResult['snippet']['title']); // wanting to remove all special characters from this string but not URL's.

但是在下面这个字符串中我想删除特殊字符和网址,那么我如何才能将这两种函数称为最有效和最简单的方法?

cleaner($searchResult['snippet']['description']);

2 个答案:

答案 0 :(得分:1)

创建一个调用两者的函数是一种很好而且简单的方法:

function clean_both($string)
{
    return clean( cleaner( $string ) );
}

这样您只需执行以下操作即可双向清理:

$clean_variable = clean_both( 'here is some text to be cleaned both ways' );

答案 1 :(得分:0)

我会在其中一个函数中添加第二个参数,让我们选择clean()

function clean($string,$urlRemove = false) {
       if ($urlRemove) {
          $string = cleaner($string);
       }
       return $string = preg_replace('/[^A-Za-z0-9\-\']/', '', $string); // Removes special chars.
    }

function cleaner($url) {
  $U = explode(' ',$url);

  $W =array();
  foreach ($U as $k => $u) {
if (stristr($u,'http') || (count(explode('.',$u)) > 1)) {
  unset($U[$k]);
  return cleaner( implode(' ',$U));
}
}
  return implode(' ',$U);
}

如果有这样的话,函数clean()将默认只剥离url(当调用clean($string);时),但如果你调用它就像

clean($string,true);

你将在字符串上执行两个函数。