ホームページ >バックエンド開発 >PHPチュートリアル >機能を共有し、バグを質問し、改善してください^

機能を共有し、バグを質問し、改善してください^

WBOY
WBOYオリジナル
2016-06-13 12:10:53834ブラウズ

関数を共有し、バグを尋ね、改善を求めてください^_^
私たちの PHPer は、数値や文字列を処理するために多くの関数をよく使用します
残念ながら、それらのほとんどは配列をサポートしていません
ひらめきがあったので、実行してみました
役に立ったと思ったら、サポートしてください
バグを見つけて、改善のための提案をしてください

<br />/**<br /> * 通过递归调用让函数支持多维数组 by wanderwind<br /> * 建议其他函数调用来实现<br /> * @param string $fn 调用函数名称<br /> * @param array $param 参数数组,通常传入func_get_args()<br /> * @param int $key 需要递归的参数键值<br /> * @param boolean $check 是否需要检测函数合法性<br /> * @return mixed 返回对$param[$key]的运行结果<br /> */<br />function fn2array($fn, $param, $key = 0, $check = true) {<br />    //从外部调用时默认检测函数合法性,多维数组递归时忽略<br />    if ($check && !function_exists($fn)) {<br />        return false;<br />    }<br /><br />    //提取执行目标,如果目标非数组可以直接执行<br />    $content = $param[$key];<br />    if (!is_array($content)) {<br />        return call_user_func_array($fn, $param);<br />    }<br /><br />    //如果目标是数组则递归执行<br />    foreach ($content as &$val) {<br />        $param[$key] = $val;<br />        $val = fn2array($fn, $param, $key, false);<br />    }<br /><br />    return $content;<br />}<br /><br />function wstripslashes() {<br />    return fn2array('stripslashes', func_get_args());<br />}<br /><br />function wsubstr() {<br />    $param = func_get_args();<br />    $param[3] = isset($param[3]) ? $param[3] : 'utf-8';<br />    return fn2array('mb_substr', $param, 0);<br />}<br /><br />$a = array(<br />    2 => '\"aaaaaaaaaaaaaaa\"',<br />    array('\"啊啊啊啊啊啊啊啊啊啊啊啊啊\"'),<br />    array(array(array('\"sss\dasf\dasfasdsad\"'))),<br />);<br /><br />print_r(wstripslashes($a));<br />print_r(wsubstr($a, 2, 5));<br />

-----解決策のアイデア----------------------
ぜひサポートを提供してください。
-----解決策のアイデア----------------------
またあの文を思い出した有名な言葉: 車輪を再発明する人
-----解決策のアイデア----------------------
関数の意味がよくわかりませんが、入って見てみましょう
-----解決策のアイデア-------------- --------
ホイールを作るのは悪いことではありません。適切な材料と技術を選択することによってのみ、半分の労力で 2 倍の結果を得ることができます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。