internet pencereler Android
Genişletmek

PHP tüm post değişkenlerini görüntüler. PHP'deki değişkenler.

Kesinlikle evde bir gardırop veya şifonyer var. Kullanımlarının ilkesi basittir: Şu anda ihtiyacımız olmayan şeyleri kaldırıyoruz, ancak bir süre sonra ihtiyaç duyabiliriz.

Değişkenler aynı şekilde düzenlenmiştir. Biraz değer verebilir ve oraya girene kadar saklayabilirler.

Değişkenler Oluşturma

Değeri değişkene aşağıdaki gibi yerleştirin:

Yukarıdaki kodda, değişken bir $ adı yarattık ve IVAN'ın değerine koyduk, daha sonra değişken bir $ yaş yarattık ve 20 değeri atandı.

"Değişken" adı, betiğin yürütülmesi sırasında değerinin değişebileceği anlamına gelir:

Bazı dillerde, değişken önce "beyan etmeli" olmalı ve sonra kullanmalıdır. PHP'de reklam yoktur - değişken şu anda içine koyduğunuz anda oluşturulur.
Bununla birlikte, PHP programcıları genellikle "bir değişken oluşturmak" yerine "bir değişkeni bildir" diyor.

Ayrıca, "değişken değere" yerine, genellikle "bir değer atama" olarak söylenir.
Sebep basit - Sembol \u003d, değerini "Atama Operatörü" olarak adlandırılan bir değişkene kaydettiğimiz için. Bu nedenle "atama" terimi.

Değişkenleri adlandırma kuralları

1. Değişkenin adı $ sembolle başlar.

2. İkinci sembol harf veya kapatma sembolü olabilir _

Değişkenlerin isimleri, durum dayanıklıdır. $ İsim ve $ adı farklı değişkenlerdir.

Ekrandaki çıkış değişken değeri

Eskiden bilinen yankı ekibini kullanarak değişkeni geri çekebilirsiniz:

ECHO komutu bir kerede birkaç değer göstermenizi sağlar:

Not, eko 2 değerlerine transfer edildi, onları virgülle ayırdı. Böylece herhangi bir değer kümesini iletebiliriz. Aşağıdaki iki örnek aynı sonuca yol açacaktır:

Ayrıca PHP'de değişkenlerin çıktısının kısaltılmış bir sözdizimi vardır. Yerine

PHP 5.4 sürümünden önce, kısaltılmış sözdizimi yalnızca Short_Open_tag direktifi PHP ayarlarında açık olduğunda çalıştı, bu da kısaltılmış açılış etiketine izin veren

Değişkenin değerini kontrol edin

ECHO komutu, değişkenin geçerli değerini kontrol etmek için her zaman uygun değildir. Örneğin, boş bir dizgeyi çıkartmaya çalıştığınızda "" Kesinlikle hiçbir şey ekranda hiçbir şey gösterilecektir. Ve neden boş bir değişken veya çalışma kodunda ne olduğu açık değildir.

Bu nedenle, değişken değerini kontrol etmek için, var_dump () işlevi kullanılır:

Komut dosyasının sonucu:

String (5) "Vasya" string (0) ""

Gördüğünüz gibi, PHP çıkışı sadece değişkenin içeriğini değil, aynı zamanda karakterlerin sayısını ve hatta değişkenin türünü (string - hat). Aşağıdaki derslerde detaylı olarak değerlendirdiğimiz veri türleri.

Değişkenleri Sil

UNSET () işlevini kullanarak mevcut bir değişkeni silebilirsiniz:

Ve şimdi biraz uygulama zamanı.

Unutmayın, PHP'deki hemen hemen her görevin birkaç çözümü olabilir. Bu nedenle, çözümleriniz bu sitede yazılmaktan farklı ise - bu, yanlış bir şey yaptığınız anlamına gelmez.

Bir komut dosyası yazın:
1. Başlık ve içerik adları ve bazı değerler içeren değişkenler oluşturur.
2. Başlık değişkeninin değerini H1 etiketinin içindeki değerini ve DIV etiketindeki içerik değişkesinin değerini gösterir.

Karar vermek

", $ başlık""; Eko"

", $ İçeriği"
"; ?>

Bir kez daha bu kararın tek doğru olmadığı için dikkatinizi çekin. Örneğin, aşağıdaki kod aynı sonucu sağlayacaktır:

Windows'daki ortam değişkenleri (ortamlar), sistem ayarları ve kullanıcı ortamı hakkında çeşitli bilgiler içerir. Çevrenin, sistemlerin ve işlemlerin değişkenleri var.

Çevre değişkenlerinin içeriğini Windows'ta görüntülemek için en kolay yolu - sistemin özelliklerini açın ( sysdm.cpl) -\u003e Gelişmiş -\u003e Çarşamba değişkenleri. Gördüğünüz gibi, mevcut bölümlerde iki bölüm vardır: Üstte, kullanıcının ortamının değişkenleri, düşük sistemik.

Ek olarak, çevre değişkenleri sistem kayıt defterinde saklanır. Özel değişkenler bölümde saklanır. Sistem - B. HKLM \\ System \\ CurrentControlSet \\ Control \\ Oturum Yöneticisi \\ Çevre.

Tüm ortam değişkenlerinin değerlerini Windows komut isteminde çekebilirsiniz. Takım basittir:

Komut, çevre değişkenlerinin listesini ve değerlerini gösterecektir.

PowerShell'de, tüm ortam değişkenlerini görüntülemek için komutu kullanabilirsiniz:

Yalnızca bir değişkeni görüntülemek istiyorsanız, ECHO komutunu kullanmanız gerekir ve değişkenin adı faiz belirtilerinde sonuçlandırılmalıdır. Örneğin,

Echo% systemroot%

set\u003e C: \\ tmp \\ env_var.txt

Belirli bir işlemin ortamının değişkenleri, ücretsiz kullanılarak elde edilebilir. süreç Gezgini Yardımcı Programları (sysinternals'ten). İşlemin özelliklerini açın ve sekmeye gidin Çevre.

PHP'deki değişkenler. - Bu, çeşitli veri türlerini (metin, sayılar, diziler vb.) İçerebilen bir tür bilgi kabıdır. Genel olarak, değişkenler, içinde belirtilen bilgilere hızlı bir şekilde ifade etmek için gelecekte oluşturmanıza, saklamanıza, değiştirmenize ve gelecektedir.

PHP'de bir değişken nasıl oluşturulur

İlk önce değişkenler bir işaret içerir $ (dolar) - Değişken kullanımının belirlenmesi, ardından harfler latin alfabesi (A'dan Z'ye ve küçük ve büyük), sonunda içerebilirim sayılar. Ayrıca başlığında daha düşük stres kullanmasına izin verilir (sonunda değil).

Değişkenleri nasıl arayabilirim:

$ var.
$ değişken
$ YIL1945.
$ _Variable.
Değişkenler nasıl adı verilemez:

1 $ - sadece sayıdan oluşur
$ 1VAR - Değişkenin adını sayılarla başlatamazsınız.
$ / var - ek karakterlerden sadece alt kesimi _
$ Değişken - Cyrillic, PHP belgelerine izin verilir, ancak önerilmez
$ Var özellik - boşlukları kullanamazsınız

Her değişken bir değer atanır. Değere bir değer atamak için = (eşit). Komut dosyasının işlenmesi sırasında, değişkenin değeri farklı koşullara bağlı olarak art arda değişebilir.

$ city \u003d "Moskova"; // değişken $ şehir bir dize (tırnak içinde) Moskova değeri atandı
$ YIL \u003d 1147; // bir değişken $ yıl atanmış sayısal değer 1147
?>

$ İsim \u003d "Alexander";
$ İsim \u003d "Alexey";
Echo "$ adı, $ adı"; // "Alexander, Alexey" çekildi
?>

Değişkenler PHP göstergesi.

Ayrı ayrı, değişkenleri nasıl göstereceğinizi sökmelisiniz Çıkış operatörleriBir PHP merak yaratan geçmişte kimin işi sökükleriz. Çıkış operatörleri. . Aşağıda, yorumları olan bir dizi görsel örnek vereceğim.

//, bu nedenle değişkenin değerlerini belirtin
$ Name1 \u003d "Alexey";
$ Name2 \u003d "Alexander";

// Değişkenleri Ekran
Echo $ name2; // Out: Alexander
Echo "Name1 $ name1"; // Name1 Alexey

// tek tırnaklar çıkışını kullanırken
// değişken isim, anlamı değil
Echo "Name1 $ name1"; // serbest bırakma: Name1 $ name1

// sadece değişken değerlerini görüntüleyebilirsiniz
Echo $ name1; // alexei
Echo $ name1, $ name2; // AlekseAleksandr
Echo $ name1. "" $ Name2; // Alexey Alexander
Yankı "$ name1, $ name2"; // Alexey, Alexander

Eko.<< İşte çıktı için "burada belge" sözdizimini kullanır
Değişken bir ikame $ değişkenli birden fazla satır.
Son;

PHP değişkenli işlemler

PHP'deki aritmetik işlemler
Sayısal değerler durumunda, aritmetik işlemler yapılabilir: ekleme, çıkarma, çarpma ve benzeri.

- $ A. (inkar) Mark $ a.
$ A + $ b (ek) $ a ve $ b $ tutar.
$ A - $ B (çıkarma) fark a ve $ b $ 'dır.
$ A * $ b (Çarpma) Ürün $ A ve $ B.
$ A / $ B (bölünme) özel olarak a ila $ b.
$% $ B (modüldeki bölünme) bir tamsayı dengesi, $ B $ 'a bölünmesi
Örnekleri düşünün

$ a \u003d 2; // BİLDİRİM, Rakam durumunda, alıntılar ayarlanmaz
$ b \u003d 3; // BİLDİRİM, Rakam durumunda, alıntılar ayarlanmaz

$ Sonuç \u003d $ A + $ B; // değişkenleri katlayın
Echo $ sonucu; // 5 çıkacak.

$ Sonuç \u003d $ B - A; // değişkenleri katlayın
Echo $ sonucu; // 1.

PHP'de artış ve azalma işlemleri
Bu işlemler çoğunlukla bir süre sonra konuşacağımız döngüler oluştururken kullanılacaktır.
Önek - Değişkenden önce öngörülen operatörler ( - $ A.; ++ $ A.). Değişkenin değerini değişikliklere iade edin.
Postfix - Bir değişkenden sonra reçete edilen operatörler ( $ a--; $ a--). Değişken bir değişkenin değerini döndürün.
Artış - Değeri arttırın.
Azaltma - Değerin azaltılması.

++ $ A. Önek artışı. Birim başına $ a arttırır ve a değerini döndürür.
$ A ++. Postfix artışı. A'nın değerini döndürür ve sonra birim başına $ a artırır.
- $ A. Önek azalması. Birim başına $ a düşürür ve a değerini döndürür.
$ a-- Postfix azalması. A $ değerini döndürür ve sonra birim başına $ a azaltır.
Eko "

Postfix artışı

";
$ a \u003d 5;
Yankı "5 olmalıdır:". $ A ++. "\\ n";

Eko "

Önek Artışı

";
$ a \u003d 5;
Yankı "6 olmalıdır:". + + $ a. "\\ n";
Yankı "6 olmalıdır:". $ a. "\\ n";

Eko "

Postfix azaltma

";
$ a \u003d 5;
Yankı "5 olmalıdır:". $ a-- "\\ n";

Eko "

Önek Düşürme

";
$ a \u003d 5;
Echo "4 olmalıdır:". - $ a. "\\ n";
Echo "4 olmalıdır:". $ a. "\\ n";
?>

PHP atama işlemleri
Temel operatör gibi görünüyor = . İlk bakışta, bu operatörün eşit olduğu görülebilir. Aslında, değil. Aslında, ödev operatörü, sol operandın sağ ifadenin değerini aldığı anlamına gelir; (yani elde edilen değer tarafından belirlenir). Kombine operatörler - Bunlar, sonraki işlemler için önceki değişkenlerin değerlerinin kullanımına izin veren operatörlerdir (dize değişkenine (metinle) veya sayısal değerler ekleyin).

$ a \u003d ($ b \u003d 2) + 4; // Sonuç: A $ 6 değerinde ayarlanır, $ B değişkeni 2 atanır.

$ a \u003d 2;
$ A + \u003d 3; // $ a değeri 5, kayıt ile benzer şekilde ayarlar: $ a \u003d a + 3;
$ b \u003d "merhaba";
$ b. \u003d "Barış!"; // $ B String "Merhaba Dünyayı Hello!" Set Set B \u003d $ b. "Orada!";

Ayrıca orada karşılaştırma işlemleri ve zeka oyunuAncak aşağıdaki derslerde onlar hakkında konuşacağız. Derhal sizi büyük miktarda bilgi ile korkutmaya çalışacağım!)

13 yıl önce.

Dikkat edilmesi gereken küçük bir GOTCHA:

RegisterGlobals'ı kapatırsanız ve ilgiliseniz, GET_DEFIND_VARS () kullanın, aşağıdakiler gibi bir şey görebilirsiniz:

Dizi.
[Globals] \u003d\u003e dizisi
[Globals] \u003d\u003e dizisi
* Özyineleme *
[_POST] \u003d\u003e dizi ()
[_Get] \u003d\u003e dizi ()
[_COOKIE] \u003d\u003e dizi ()
[_Files] \u003d\u003e dizi ()
)

[_POST] \u003d\u003e dizi ()
[_Get] \u003d\u003e dizi ()
[_COOKIE] \u003d\u003e dizi ()
[_Files] \u003d\u003e dizi ()

)
?>

$ _Server'ın orada olduğuna dikkat edin. PHP'nin yalnızca bir yerde kullanılması durumunda Superglobal $ _Server'ı yüklediğini belirtti. Bunu yapabilirsin:

yazdır "

". Htmlspecialchars (Print_r (get_defined_vars (), true))."
" ;
yazdır "
". Htmlspecialchars (Print_r ($ _Server, True))."
" ;
?>

Ve sonra $ _Server her iki listede de görünecektir. Sanırım bu gerçekten bir GOTCHA değil, çünkü kötü bir şey olmayacak, ama yine de ilginç bir merak.

6 YIL ÖNCE.

Get_defined_vars () yalnızca işlevi aradığınız noktadaki değişkenleri alır, mevcut kapsamda tanımlanan değişkenleri almanın basit bir yolu vardır.

// PHP komut dosyanızın en üst kısmı
$ vars \u003d get_defined_vars ();

// şimdi eşyalarını yap
$ foo \u003d "foo";
$ Bar \u003d "bar";

// mevcut kapsamda tanımlanan tüm değişkenleri al
$ vars \u003d array_diff (get_defined_vars (), $ vars);

eko "

"
;
print_r ($ vars);
eko "
" ;
?>

15 YIL ÖNCE.

İşte ekran veya e-posta için bir hata ayıklama raporu oluşturan bir fonksiyon
get_defined_vars kullanarak. Detaylı bir anlık görüntüye değer almak için harika
kullanıcı girişine güvenmek.

fonksiyon GeneratedEbuGreport ($ yöntem, $ taned_vars, $ e-posta \u003d "undefined") (
// işlevi görüntülemek veya e-postayla göndermek için bir hata ayıklama raporu oluşturmak için işlev.
// Kullanım: GenerateTebuGreport (yöntem, get_defined_vars (), e-posta);
// yöntem "tarayıcı" veya "e-posta" olduğunda.

// "get_defined_vars" ile döndürülen tuşlar için bir yok sayılı listesi oluşturun.
// Örneğin, http_post_vars, http_get_vars ve diğer
// yedek (_POST, _GET ile aynı)
// ayrıca güvenlik nedenleriyle göz ardı edilmek istediğiniz varsları içerir - yani. PhpsessID.
$ Ignorelist \u003d dizi ("http_get_vars", "http_get_vars",
"Http_cookie_vars", "http_server_vars",
"Http_env_vars", "http_session_vars",
"_Env", "phpsessID", "Sess_dbuser",
"Sess_dbpass", "http_cookie");

$ timestamp \u003d tarih ("m / d / y h: m: s");
$ MESAJ \u003d "DEBUG RAPOR, $ TIMESTAMP \\ N";

// iyi bir önlem için son SQL hatasını alın, burada $ bağlantı kaynak tanımlayıcısıdır.
// mysql_connect için. Veritabanınız veya soyutlama kurulumunuz için yorum yapın veya değiştirin.
global $ link;
$ Sql_error \u003d mysql_error ($ link);
if ($ sql_error) (
$ mesaj. \u003d "\\ nmysql mesajları: \\ n". mysql_error ($ link);
}
// mysql.

// Burada bir özyinelemeli işlev kullanabilir. Kaptın bu işi ;-)
foreach ($ TLET_VARS $ KEY \u003d\u003e $ VAL) (
Eğer (IS_Array ($ val) &&! In_Array ($ tuş, $ Ignorelist) && Sayımı ($ val)\u003e 0)
$ Mesaj. \u003d "\\ N $ anahtar dizisi (anahtar \u003d değer): \\ n";
Foreach ($ val olarak $ subkey \u003d\u003e $ subval) (
Eğer (! In_Array ($ alt anahtar, $ Ignorelist) &&! İs_array ($ subval)) (
$ Mesaj. \u003d $ Alt anahtar. "\u003d". $ subval. "\\ n";
}
Elseif (! In_Array ($ alt anahtar, $ Ignorelist) && is_array ($ subval)) (
Foreach ($ Subval $ Subsubkey \u003d\u003e $ Sübvansiyon) (
if (! In_Array ($ AubberBey, $ Ignorelist)) (
$ Mesaj. \u003d $ SubsUbkey. "\u003d". $ Subsubval. "\\ n" ;
}
}
}
}
}
Elseif (!
İs_array ($ val) &&! In_Array ($ Key, $ Ignorelist) && $ val) (
$ Mesaj. \u003d "\\ Nvareable". $ Tuşu. "\u003d". $ Val. "\\ n";
}
}

İf ($ yöntem \u003d\u003d "tarayıcı") (
Echo nl2br ($ mesaj);
}
Elseif ($ yöntemi \u003d\u003d "e-posta") (
if ($ e-posta \u003d\u003d "undefind") (
$ e-posta \u003d $ _Server ["server_admin"];
}

$ Mresult \u003d mail ($ e-posta, "Debug raporu". $ _Env ["hostname"]. "", $ Mesaj);
if ($ mresult \u003d\u003d 1) (
Eko. "Hata ayıklama raporu başarıyla gönderildi. \\ N";
}
BAŞKA (
Eko. "Debug Reort gönderemedi. \\ N";
}
}
}
?>

17 yıl önce.

Get_defined_vars nesnesini XML'ye dönüştürmek için basit rutin.

İşlev Obj2xml ($ v, $ girinti \u003d "") (
Süre (liste ($ tuş, $ val) \u003d her ($ v)) (
eğer ($ tuş \u003d\u003d "__ATtr") devam ederse;
// __ATtr için kontrol edin
if (is_object ($ val -\u003e __ATtr)) (
(Liste ($ Key2, $ val2) \u003d her ($ val -\u003e __ATtr)) (
$ Attr \u003d "$ key2 \u003d \\" $ val2 \\ ";
}
}
Başka $ attr \u003d "";
if (is_array ($ val) || is_object ($ val)) (
Yazdır ("$ girinti)< $key$attr >\\ n ");
obj2xml ($ val, $ girinti. "");
Yazdır ("$ girinti)\\ n ");
}
Başka baskı ("$ girinti)< $key$attr > val\\ n ");
}
}

// örnek nesne.
$ x -\u003e İsim -\u003e First \u003d "John";
$ x -\u003e İsim -\u003e Son \u003d "Smith";
$ x -\u003e arr ["meyve"] \u003d "bannana";
$ x -\u003e arr ["Veg"] \u003d "havuç";
$ Y -\u003e Müşteri \u003d $ x;
$ Y -\u003e Müşteri -\u003e __ATtr -\u003e ID \u003d "176C4";

$ z \u003d get_defined_vars ();
obj2xml ($ z ["y"]);
?>
Çıktı:


John.
Smith


Bannana.
Havuç.

11 yıl önce.

Bir not olarak, get_defined_vars () bir dizi değişken referansı döndürmez (umduğum gibi). Örneğin:

// bir değişkeni tanımla
$ My_var \u003d "foo";

// Tanımlanmış değişkenler listemizi alın
$ taned_vars \u003d get_defined_vars ();

Şimdi değeri iade edilen dizi aracılığıyla değiştirmeye çalışın
$ taned_vars ["my_var"] \u003d "Bar";

echo $ my_var, "\\ n";

?>

"Foo" çıkacaktır (orijinal değeri). Get_defined_vars () 'nin referanslarını yapmak için isteğe bağlı bir argüman olsaydı, ama oldukça uzmanlaşmış bir istek olduğunu hayal ediyorum.

$ Tanıml_vars \u003d dizi ();
$ var_names \u003d array_keys (get_defined_vars ());

foreach ($ var_ames $ var_ame olarak)
{
$ taned_vars [$ var_ame] \u003d & $ var_adı;
}

?>

1 yıl önce.

Buraya daha önce "BU" HAKKINDA GET_DEFINDY_VARS'ta yayınladım.

Her zaman orada değil ama Certiain davalarında açıkça görünecektir.

Php -r "
Sınıf testi (
Halk İşlev A () (var_dump (array_keys (get_defined_vars ()); $ a \u003d 123;)
Halk Fonksiyonu B () (var_dump (array_keys (get_defined_vars ()); $ buna;)
}
$ t \u003d yeni test ();
$ T-\u003e a ();
$ T-\u003e b ();
"

Dizi ()
Dizi ("bu")

Bu PHP 7.2'de olmaz, ancak PHP 5.6'da olacaktır.

1 yıl önce.

Buradaki bazı yorumlar, bu işlevin referansları geri göndermediğini gösterir. Ancak, isimleri ve isimleri "referanslar" dir.

Önerileri buradaki referanslara dönüştüren önerileri tavsiye etmem.

Halk Fonksiyonu x ($ a, $ b, $ c) (
Foreach (array_keys (get_defined_vars ()) $ Key olarak)
Eğer ($ tuş! \u003d\u003d "Bu")
$ this-\u003e y ($ ($ tuş));
}

Halk Fonksiyon Y (ve $ Giriş) (
$ Giriş ++;
}

$ () Yerine $$ kullanabilirsiniz.

Son derece genel kod yapmak için zamanımdaki bazı chackky şeyler yaptım ama yukarıdakiler gibi bir şey yapmak zorunda kalmadım.

Ayrıca $$ tuşunu ++ yapabilirsiniz, ancak "th" t asla "t rahatsız edici bir şekilde dinamik" t olmadığını görmedim).

Eğer böyle bir şey yaparsanız, daha sonra ek bir inceleme yapın.