我试图将两个独立的PHP函数合并为一个,我可以在我的Wordpress主题中使用。我使用Wordpress函数来获取关键字"_videoembed"的post元数据,然后从YouTube URL修剪到YouTube视频ID。我将包括前面的两个函数& &;我如何使用它们,然后是我正在研究的那个。非常感谢所有的帮助!马特
<之前的方法/strong>
在主题
<?php
$vidurl = get_post_meta($post->ID, "_videoembed", true );
$youtube_id = getYouTubeIdFromURL($vidurl);
$finalid = trim($youtube_id);
echo $finalid;
?>
显然也在
function getYouTubeIdFromURL($url)
{
$url_string = parse_url($url, PHP_URL_QUERY);
parse_str($url_string, $args);
return isset($args['v']) ? $args['v'] : false;
}
下面是我如何合并两者的例子:
在主题
<?php getvidID(); ?>
显然也在
function getvidID()
{
$vidurl = get_post_meta($post->ID, "_videoembed", true );
$url_string = parse_url($vidurl, PHP_URL_QUERY);
parse_str($vidurl_string, $args);
return isset($args['v']) ? $args['v'] : false;
echo $vidurl;
}
正如您所看到的,我使用的旧方法非常笨重,我正在尝试简化事情,以便我的文件更容易处理,从而减少PHP函数。
谢谢!
马特我会保持较小的功能单元,而不是创建较大的单个功能。
将一个大函数拆分为更小的功能单元是一种已知的重构模式,称为提取方法。
合并小函数几乎与重构相反,重构的目的是保持代码干净,更容易跟踪和维护。
功能用法:
<?php get_vid_id($post->ID); ?>
函数本身:
function get_vid_id($id)
{
$vidurl = get_post_meta($id, "_videoembed", true );
$url_string = parse_url($vidurl, PHP_URL_QUERY);
parse_str($vidurl_string, $args);
return isset($args['v']) ? $args['v'] : false;
echo $vidurl;
}
但是我建议使用更少的函数。保持代码整洁。或者创建类?