Нещо подобно
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);
Наистина лични предпочитания.
Актуализиран фрагмент 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' : ''));
Актуализиран фрагмент 2
$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 и го отпечатва. Подходът на Валентинас извлича статичния текст от 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>
Съмнявам се, че има значителна разлика в производителността между двата метода, но има една козметична разлика, която ще подчертая.
-
Открояване на синтаксиса - Ако използвате редактор с осветяване на синтаксиса, подходът на valentinas ще позволи на осветителя на синтаксиса да освети по подходящ начин
input
таг и неговите атрибути. Използвайки моя подход, целият низ ще бъде подчертан по същия начин. Ето екранна снимка показвайки как notepad++ подчертава двата метода.Както можете да видите, подходът на Валентина води до по-цветен дисплей, който може да помогне за идентифициране и проследяване на грешки.
Има някои фини разлики, когато става въпрос за това как вашият код трябва да бъде форматиран, ако искате условно да отпечатате целия таг, но не си струва да се говори за тях - най-голямата според мен е подчертаването на синтаксиса.