このようなもの
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n",
($subscribedrips == 'Yes' ? 'CHECKED' : ''));
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n",
($subscribedrips == 'No' ? 'CHECKED' : ''));
動作します。三項演算子を使用して、'CHECKED'
を挿入します。 または、$subscribedrips
の値に基づいて、入力タグに空の文字列を入力します 。
たとえば、switch:
を使用して、より詳細な方法で行うこともできます。$sel_y = '';
$sel_n = '';
switch($subscribedrips)
{
case 'Yes':
$sel_y = 'CHECKED';
break;
case 'No':
$sel_n = 'CHECKED';
break;
default:
// Neither need to be changed, so we dont even need this branch
break;
}
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n", $sel_y);
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n", $sel_n);
本当に個人的な好み。
更新されたSnippet1
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n",
((array_key_exists('subscribedrips', $row) && $row['subscribedrips'] == 'Yes') ? 'CHECKED' : ''));
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n",
((array_key_exists('subscribedrips', $row) && $row['subscribedrips'] == 'No') ? 'CHECKED' : ''));
更新されたSnippet2
$sel_y = '';
$sel_n = '';
if(array_key_exists('subscribedrips', $row))
{
switch($row['subscribedrips'])
{
case 'Yes':
$sel_y = 'CHECKED';
break;
case 'No':
$sel_n = 'CHECKED';
break;
default:
// Neither need to be changed, so we dont even need this branch
break;
}
}
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n", $sel_y);
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n", $sel_n);
最後の質問に関して、私たちのアプローチの違いは非常に単純ですが、もう一度(ああ!)スタイルの選択であり、どちらも同じ目標を達成し、両方の方法が「本番」PHPコードで使用されます。
私の例では、入力タグ全体をPHPでビルドし、それを出力します。 Valentinasのアプローチは、静的テキストをPHP文字列から引き出し、HTMLに直接配置します。
たとえば、次の行はすべて同じ出力になります。
<?php printf("<strong>%s</strong>", $some_string); ?>
<?php echo "<strong>$some_string</strong>"; ?>
<?php echo "<strong>".$some_string."</strong>"; ?>
<strong><?php echo $some_string; ?></strong>
2つの方法の間に大きなパフォーマンスの違いがあるかどうかは疑わしいですが、強調する1つの外観上の違いがあります。
-
構文の強調表示 -シンタックスハイライト付きのエディターを使用する場合、valentinasのアプローチにより、シンタックスハイライトで
input
を適切にハイライトできます。 タグとその属性。私のアプローチを使用すると、文字列全体が同じように強調表示されます。 スクリーンショットはこちら notepad++が2つの方法をどのように強調しているかを示しています。ご覧のとおり、valentinasのアプローチにより、よりカラフルな表示が得られ、エラーの特定と追跡に役立つ可能性があります。
タグ全体を条件付きで印刷する場合、コードのフォーマット方法に関しては微妙な違いがいくつかありますが、それらについて話す価値はありません。私の意見では、最大のものは構文の強調表示です。