帮助合并两个PHP函数(Wordpress)


Help Merging 2 PHP Functions (Wordpress)

我试图将两个独立的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;
}

但是我建议使用更少的函数。保持代码整洁。或者创建类?