Veya PHP şey içeren olmayabilir Bir değişken çıkarılırken için en iyi yöntem nedir?

3 Cevap php

Ben bir uygulama geliştirme ve formunu düzenleyerek eğer dolacak bir formu görüntülemek istediğiniz, ancak form yeni bir giriş olacaktır eğer olmayacak duyuyorum. Ben bunu en ayrıntılı şekilde sadece tek bir form var ve yeni bir formu (yeni bir form ise, değişkenleri yok çünkü) ise hiçbir şey basılacak ki benim değişkenleri yankılanan herhangi hatalarını bastırmak için olduğuna inanıyorum . Örneğin:

<?php 
if ( ! $new_item) {
    $variable = 'Example';
}
?>
<form>
    <input type="text" name="inputbox" value="<?php echo @$variable; ?>" />
</form>

Bu iyi bir uygulama mı, yoksa bunu yapmanın daha iyi bir yolu var mı? Ben yeni öğeler ve öğeler için ayrı görüş düzenlenebilir yapmak gerekir? Bunu yapmanın performans yansımaları nelerdir?

3 Cevap

Sen kullanabilirsiniz

<?php echo ((isset($value) && $value != '') ? $value : 'Default'); ?>

Bu soruna bir temizleyici çözüm sizin için yapar bir yardımcı işlev oluşturmak için:

function useDefault($value, $default = '')
{
    if (isset($value) && $value != '')
    {
        return $value;
    }
    else
    {
        return $default;
    }
}

Daha sonra kullanabilirsiniz

<?php echo useDefault($value, 'default value'); ?>

i kullanma eğilimindedir:

$variable = (isset($new_item) && $new_item) ? 'Example' : 'Default Value';

Overkill gerçekten, ama o ayarlı değilse! $ NEW_ITEM için düz giden bir haber atar düşünüyorum. Ayrıca istediğiniz davranışa bağlı! Boş ($ NEW_ITEM) için ikinci maddesini dışarı geçiş yapabilirsiniz.

Ben iyi yolu her zaman değişkeni ayarlamak için olduğunu düşünüyorum

if ( ! $new_item) {
    $variable = 'Example';
} else {
    $variable = 'Default value'; 
    //or
    $variable = '';
}

@ hata bastırılması kullanırken yavaş.

edit Note that when you print the variable into the input value attribute, you should first call htmlentities() or htmlspecialchars() on it.

2nd edit

Siz yorumunuzda size nesneye olarak veri getiriliyor söylüyorlar, bu durumda sen de yapabilirsin:

class example {
    public $somefield = 'default value';
}

Varolan bir kayıt olup olmadığını Sonra döndürülen nesne 'örnek' bir örneği neden olacaktır böyle bir şey yapmak düzenliyorsunuz:

$record = mysql_fetch_object($result, 'example');

ya da yeni bir rekor instanciate kendiniz ise:

$record = new example();

Sonra her zaman $record->somefield set olacak biliyorum ve bunu yapabilirsiniz:

<form>
    <input type="text" name="somefield" value="<?php echo htmlspecialchars($record->somefield); ?>" />
</form>