このようなもの
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
。
また、たとえば次のように、より詳細な方法で行うこともできます。
$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);
本当に個人的な好み。
更新されたスニペット1
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のアプローチにより、よりカラフルな表示が得られ、エラーの特定と追跡に役立つ可能性があります。
タグ全体を条件付きで印刷する場合、コードのフォーマット方法に関しては微妙な違いがいくつかありますが、それらについて話す価値はありません。私の意見では、最大のものは構文の強調表示です。