用PHP创建此列表的最佳方法是什么?
我是新来PHP的,希望看看是否有更好的方法来编写我所拥有的这个小代码片段。基本上,它为一些社交媒体链接提供变量,检查它们是否为空,在函数中创建一个数组,我在UL中调用该数组。我知道这很简单,但我只是看看我所拥有的是否是最好的,或者我是否可以改进它用PHP创建此列表的最佳方法是什么?,php,Php,我是新来PHP的,希望看看是否有更好的方法来编写我所拥有的这个小代码片段。基本上,它为一些社交媒体链接提供变量,检查它们是否为空,在函数中创建一个数组,我在UL中调用该数组。我知道这很简单,但我只是看看我所拥有的是否是最好的,或者我是否可以改进它 <?php $facebook = of_get_option('facebook'); $twitter = of_get_option('twitter'); $youtube = of_get_o
<?php
$facebook = of_get_option('facebook');
$twitter = of_get_option('twitter');
$youtube = of_get_option('youtube');
$linkedIn = of_get_option('linkedin');
$instagram = of_get_option('instagram');
$socialMediaLinks = array(
);
if (!empty($facebook)){
$socialMediaLinks[facebook] = $facebook;
}
if (!empty($twitter)){
$socialMediaLinks[twitter] = $twitter;
}
if (!empty($youtube)){
$socialMediaLinks[youtube] = $youtube;
}
if (!empty($linkedIn)){
$socialMediaLinks[linkedIn] = $linkedIn;
}
if (!empty($instagram)){
$socialMediaLinks[instagram] = $instagram;
}
function socialMediaList($value, $key){
echo '<li class="'.$key.'"><a href="'.$value.'">'.$key.'</a></li>';
}
?>
<?php if (!empty($socialMediaLinks)){ ?>
<ul class="social-media">
<?php array_walk($socialMediaLinks, 'socialMediaList'); ?>
</ul>
<?php } ?>
试试这个:
<?php
$socialMediaItems = array(
'facebook' => of_get_option('facebook'),
'twitter' => of_get_option('twitter'),
'youtube' => of_get_option('youtube'),
'linkedin' => of_get_option('linkedin'),
'instagram' => of_get_option('instagram')
);
$socialMediaLinks = array();
foreach ($socialMediaItems as $key => $item) {
if ($item) {
$socialMediaLinks[$key] = $item;
}
}
function socialMediaList($value, $key){
echo '<li class="'.$key.'"><a href="'.$value.'">'.$key.'</a></li>';
}
?>
<?php if (!empty($socialMediaLinks)){ ?>
<ul class="social-media">
<?php array_walk($socialMediaLinks, 'socialMediaList'); ?>
</ul>
<?php } ?>
您只需执行以下操作即可缩短代码:
$socialMediaLinks = array_filter(array(
'facebook' => of_get_option('facebook'),
'twitter' => of_get_option('twitter'),
'youtube' => of_get_option('youtube'),
'linkedIn' => of_get_option('linkedIn'),
'instagram' => of_get_option('instagram'),
));
这将自动删除所有空条目,因此您以后不需要那么多if语句。使用数组
<?php
$facebook = of_get_option('facebook');
$twitter = of_get_option('twitter');
$youtube = of_get_option('youtube');
$linkedIn = of_get_option('linkedin');
$instagram = of_get_option('instagram');
$socialMediaLinks = array();
$madeArray = array('facebook' => $facebook,'twitter' => $twitter,'youtube' => $youtube,'linkedin' => $linkedIn,'instagram' => $instagram);
foreach ($madeArray as $key => $value) {
if (!empty($value)) {
$socialMediaLinks[$key] = $value;
}
}
function socialMediaList($value, $key){
echo '<li class="'.$key.'"><a href="'.$value.'">'.$key.'</a></li>';
}
?>
<?php if (!empty($socialMediaLinks)){ ?>
<ul class="social-media">
<?php array_walk($socialMediaLinks, 'socialMediaList'); ?>
</ul>
<?php } ?>
更好的方法是:
<?php
$socialmedia = array('facebook', 'twitter', 'youtube', 'linkedin' 'instagram');
$socialMediaLinks = array();
function GetOptions($name)
{
$value = of_get_option($name);
if (!empty($value))
$socialMediaLinks[$name] = $value;
}
foreach ($socialmedia as $smname)
GetOptions($smname);
function socialMediaList($value, $key){
echo '<li class="'.$key.'"><a href="'.$value.'">'.$key.'</a></li>';
}
if (!empty($socialMediaLinks)){
?>
<ul class="social-media">
<?php array_walk($socialMediaLinks, 'socialMediaList'); ?>
</ul>
<?php
}
?>
我做了这样的东西:
$social_networks=['facebook'、'twitter'、'youtube'、'linkedin'、'instagram'];
$media_links=[];
foreach($social_networks as$network){
如果($option=of_get_option($network)){
$media_links[$network]=$option;
}
}
//要输出的代码。。。
如果您编写支持时间短的简单应用程序,您的显示样式将正常。但如果它有些复杂,您应该使用MVC模式。看起来不错,但循环可以节省代码行。您可以执行
get\u选项
和!empty(..
检查循环,而不是编写循环。您应该首先修复错误。将错误报告(E_ALL);
放在脚本的顶部。在我看来,您应该在一个唯一的数组中获取所有选项(具有某种“全局的获取选项”)函数,然后处理它,而不是单独获取这些选项,然后将其放入数组中…例如:foreach($options as$media){//checks…},我不认为使用!empty在这里很重要,因为如果它真的为空,它就不会显示…你会保留该函数还是在那一点上只使用foreach循环?就我个人而言,我更喜欢使用foreach循环和echo“