php 数组、foreach 和 if 语句的最佳实践
Best practices for php arrays, foreach and if statements
所以我现在只是在学习最佳实践,每个人都有意见,我只是想找到一种不错的干净编码方式,这不是......不好吗?
下面是我写的。它有效,没有错误输出但是我觉得这是一种糟糕的做法。这是在 Wordpress 模板中。
<?php
$config['social-links'] = [
'facebook' => 'https://www.facebook.com/usernamehere',
'instagram' => 'https://www.instagram.com/usernamehere/',
'twitter' => null,
'youtube' => null
];
并在模板中
<ul class="social-nav inline-blocks">
<?php
global $config;
$dir = get_template_directory_uri();
foreach($config['social-links'] as $key => $value) if($value)
echo "
<li class='$key inlineBlock'>
<a class='animate' target='_blank' href='$value'>
<span class='inner'>
<img class='injectSvg' data-src='$dir/images/social-icons/icon-$key.svg' alt='$key'>
</span>
</a>
</li>
";
?>
</ul><!--END Social-nav-->
我有一种感觉,因为我把它们打开了,这很糟糕吗?我知道下面的内容是正确的,但我不喜欢括号...
foreach($config['social-links'] as $key => $value) {
if($value) {
}
}
我刚刚完成了以下...
<ul class="socialNav inlineBlocks">
<?php
global $config;
foreach($config['social-links'] as $key => $value) {
if($value) {
echo '
<li class="'. $key .' inlineBlock">
<a class="animate" target="_blank" href="'. $value .'">
<span class="inner">
<img class="injectSvg" data-src="'. get_template_directory_uri() .'/images/social-icons/icon-'. $key .'.svg" alt="'. $key .'">
</span>
</a>
</li>
';
}
} ?>
</ul><!--END SocialNav-->
这是糟糕的做法。如果您无权访问模板引擎(即 Twig),那么使用如下所示的 shorthand/templating PHP 是您应该查看的路径:
<?php foreach($config['social-links'] as $key => $value): ?>
<?php if($value): ?>
<li class="<?php echo $key; ?>" inlineBlock">
<a class="animate" target="_blank" href="<?php echo $value; ?>">
<span class="inner">
<img class="injectSvg" data-src="<?php echo get_template_directory_uri() .'/images/social-icons/icon-'. $key; ?>.svg" alt="<?php echo $key; ?>">
</span>
</a>
</li>
<?php endif; ?>
<?php endforeach; ?>
这通常被称为 Alternative Syntax 并且是要走的路。
所以我现在只是在学习最佳实践,每个人都有意见,我只是想找到一种不错的干净编码方式,这不是......不好吗?
下面是我写的。它有效,没有错误输出但是我觉得这是一种糟糕的做法。这是在 Wordpress 模板中。
<?php
$config['social-links'] = [
'facebook' => 'https://www.facebook.com/usernamehere',
'instagram' => 'https://www.instagram.com/usernamehere/',
'twitter' => null,
'youtube' => null
];
并在模板中
<ul class="social-nav inline-blocks">
<?php
global $config;
$dir = get_template_directory_uri();
foreach($config['social-links'] as $key => $value) if($value)
echo "
<li class='$key inlineBlock'>
<a class='animate' target='_blank' href='$value'>
<span class='inner'>
<img class='injectSvg' data-src='$dir/images/social-icons/icon-$key.svg' alt='$key'>
</span>
</a>
</li>
";
?>
</ul><!--END Social-nav-->
我有一种感觉,因为我把它们打开了,这很糟糕吗?我知道下面的内容是正确的,但我不喜欢括号...
foreach($config['social-links'] as $key => $value) {
if($value) {
}
}
我刚刚完成了以下...
<ul class="socialNav inlineBlocks">
<?php
global $config;
foreach($config['social-links'] as $key => $value) {
if($value) {
echo '
<li class="'. $key .' inlineBlock">
<a class="animate" target="_blank" href="'. $value .'">
<span class="inner">
<img class="injectSvg" data-src="'. get_template_directory_uri() .'/images/social-icons/icon-'. $key .'.svg" alt="'. $key .'">
</span>
</a>
</li>
';
}
} ?>
</ul><!--END SocialNav-->
这是糟糕的做法。如果您无权访问模板引擎(即 Twig),那么使用如下所示的 shorthand/templating PHP 是您应该查看的路径:
<?php foreach($config['social-links'] as $key => $value): ?>
<?php if($value): ?>
<li class="<?php echo $key; ?>" inlineBlock">
<a class="animate" target="_blank" href="<?php echo $value; ?>">
<span class="inner">
<img class="injectSvg" data-src="<?php echo get_template_directory_uri() .'/images/social-icons/icon-'. $key; ?>.svg" alt="<?php echo $key; ?>">
</span>
</a>
</li>
<?php endif; ?>
<?php endforeach; ?>
这通常被称为 Alternative Syntax 并且是要走的路。