PHP Global değişkenleri başlatılamıyor

6 Cevap php

PHP içinde global bir değişken başlatmak için iyi bir uygulama mı? Kod parçacığını iyi çalışıyor gibi görünüyor, ama bu kod, ikinci sıfırdan gibi, bir fonksiyon dışında (performans uğruna demek, daha büyük bir projenin) değişkeni başlatmak daha iyidir?

if(isset($_POST["Return"]))Validate();
function Validate(){
    (!empty($_POST["From"])&&!empty($_POST["Body"]))?Send_Email():Fuss();
};
function Send_Email(){
    global $Alert;
    $Alert="Lorem Ipsum";
    mail("","",$_POST["Body"],"From:".$_POST["From"]);
};
function Fuss(){
    global $Alert;
    $Alert="Dolor Sit"
};

function Alert(){
    global $Alert;
    if(!is_null($Alert))echo $Alert;
};

Yukarıdaki değişken $ Uyarısı fark başlatılmadı.

$Alert;
if(isset($_POST["Return"]))Validate();
function Validate(){
    (!empty($_POST["From"])&&!empty($_POST["Body"]))?Send_Email():Fuss();
};
function Send_Email(){
    global $Alert;
    $Alert="Lorem Ipsum";
    mail("","",$_POST["Body"],"From:".$_POST["From"]);
};
function Fuss(){
    global $Alert;
    $Alert="Dolor Sit"
};

function Alert(){
    global $Alert;
    if(!is_null($Alert))echo $Alert;
};

Şimdi fark.

Ben herhangi bir cevap takdir! Önceden, Jay teşekkürler

6 Cevap

Ben bunu hurdaya ediyorum bu yüzden bu yapılabilir olduğunu sanmıyorum. Global değişkenler PHP6 düştü ve Sabit, tanımı gereği bu değişti değer olamaz ediliyor. Herkese teşekkürler, ben her bir cevabı ve katkıda bulunan herkese teşekkür ederiz.

İkinci örnekte yine değişken, çizgi ilan edilmez

$alert;

Bu bildirilmemiş kalır böylece $alert bir değer atamaz.

Ilk değişkeni bildirirseniz, bildirimleri yaratmadan daha kolay erişebilirsiniz:

$alert = '';

if ($alert) {
    //do something with alert
}

Is it good practice to initialize a global variable in PHP?

Kanımca (and I'm not the only one thinking that), bu not use global değişkenler için iyi bir uygulamadır.

Sen bağımsız değişken bir çift bulabilirsiniz here.

Eğer gerçekten global değişkenler kullanmanız gerekiyorsa, olsa da, bunları başlatmak için muhtemelen iyidir; ya da oldum isset belirlemek için kullanabilirsiniz.

Global değişkenleri kullanmak etmeyin, kötü bir parctice ve PHP6 mevcut olmayacaktır. Eğer sayfa / sınıflar arasında mevcut değerler gerekiyorsa, neden bir numaralandırma sınıf oluşturmak değil mi? Burada bir örneğe bakın: http://riccardotacconi.blogspot.com/2009/05/enumerator-class-in-php.html

Temelde sizin sınıfı içerecek ve bu şekilde değerini almak: QYourClass :: Uyarısı

Eh, başlatılmamış bir değişken kullanarak böylece değişkenleri başlatırken her zaman onları başlatılıyor değil daha iyidir, php bir haber tetikleyecektir.

Göre this page global değişkenler PHP6 kaldırılmış olan değil, daha ziyade register global variables. Global değişkenler kullanan bir dizi (bazıları değil, iyi bir uygulama vardır) ve temelde güvenli. Register globals ciddi bir güvenlik kaçamak ve haklı onaylanmaz.