如何通过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']);
答案 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);
你将在字符串上执行两个函数。