Sesuatu seperti ini
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' : ''));
bekerja. Ia menggunakan operator ternary untuk memasukkan 'CHECKED'
atau string kosong ke dalam tag input, berdasarkan nilai $subscribedrips
.
Anda juga dapat melakukannya dengan cara yang lebih bertele-tele, misalnya dengan 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);
Preferensi pribadi benar-benar.
Snippet 1 yang Diperbarui
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' : ''));
Snippet 2 yang Diperbarui
$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);
Mengenai pertanyaan terakhir Anda, perbedaan antara pendekatan kami cukup sederhana, tetapi sekali lagi (ahh!) ini adalah pilihan gaya, keduanya mencapai tujuan yang sama, kedua metode digunakan dalam kode PHP "produksi".
Contoh saya membangun seluruh tag input dalam PHP dan mencetaknya. Pendekatan Valentinas menarik teks statis dari string PHP dan memasukkannya langsung ke HTML.
Misalnya, baris berikut semuanya akan menghasilkan output yang sama:
<?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>
Saya ragu ada perbedaan kinerja yang signifikan antara kedua metode tersebut, tetapi ada satu perbedaan kosmetik yang akan saya soroti.
-
Penyorotan sintaks - Jika Anda menggunakan editor dengan penyorotan sintaks, pendekatan valentinas akan memungkinkan penyorot sintaks untuk menyorot
input
dengan tepat tag dan atributnya. Menggunakan pendekatan saya, seluruh string akan disorot sama. Berikut adalah tangkapan layarnya menunjukkan bagaimana notepad++ menyoroti kedua metode tersebut.Seperti yang Anda lihat, pendekatan valentina menghasilkan tampilan yang lebih berwarna, yang dapat membantu mengidentifikasi dan melacak kesalahan.
Ada beberapa perbedaan halus dalam hal bagaimana kode Anda harus diformat jika Anda ingin mencetak seluruh tag secara kondisional, tetapi itu tidak terlalu penting untuk dibicarakan -- yang terbesar, menurut saya, adalah penyorotan sintaks.