Apa yang dilakukan kata kunci PHP 'var'?

427

Ini mungkin pertanyaan yang sangat sepele, tetapi saya belum dapat menemukan jawabannya baik melalui mesin pencari web, maupun di php.net. Tolong arahkan saya ke tempat saya bisa membaca tentang ini, jika Anda tidak punya waktu untuk menjelaskan.

  1. Apa arti kata kunci 'var' dalam PHP?
  2. Apakah ada perbedaan antara PHP4 dan PHP5?
joelpet
sumber
4
Saya kira ketika Anda mengajukan pertanyaan ini pada 30 Juli 2009, ini belum dipublikasikan di php.net/manual/en/language.oop5.visibility.php?: "Catatan: Metode PHP 4 untuk mendeklarasikan variabel dengan var kata kunci masih didukung untuk alasan kompatibilitas (sebagai sinonim untuk kata kunci publik). Di PHP 5 sebelum 5.1.3, penggunaannya akan menghasilkan peringatan E_STRICT. " Atau mungkin Anda belum menemukannya. Tetapi jawabannya jelas dinyatakan di php.net.
Jaime Montoya
Sungguh menakjubkan melihat perjalanan PHP yang telah berlalu tahun ini!
Mehrdad Shokri

Jawaban:

384

Ini untuk mendeklarasikan variabel anggota kelas dalam PHP4, dan tidak lagi diperlukan. Ini akan bekerja di PHP5, tetapi akan memunculkan E_STRICTperingatan dalam PHP dari versi 5.0.0 ke versi 5.1.2, pada saat itu sudah ditinggalkan. Sejak PHP 5.3, var telah tidak digunakan lagi dan merupakan sinonim untuk 'publik'.

Contoh penggunaan:

class foo {
    var $x = 'y'; // or you can use public like...
    public $x = 'y'; //this is also a class member variables.
    function bar() {
    }
}
karim79
sumber
10
"Catatan: Metode PHP 4 untuk mendeklarasikan variabel dengan varkata kunci masih didukung untuk alasan kompatibilitas (sebagai sinonim untuk publickata kunci). Dalam PHP 5 sebelum 5.1.3, penggunaannya akan menghasilkan E_STRICTperingatan." php.net/manual/en/language.oop5.visibility.php EDIT: Saya baru saja melihat bahwa telah dikutip dalam jawaban lain . Tapi Anda harus mengedit milik Anda sesuai
Sk8erPeter
Ini menyiratkan bahwa perlu menggunakan publickata kunci dengan untuk variabel anggota. Benarkah? Tidak bisakah dengan sederhana $x;?
limeandcoconut
1
jadi apakah disarankan untuk tetap menggunakan publik / pribadi dan mengabaikan var sepenuhnya karena kita tidak khawatir bekerja dengan versi PHP yang sudah tidak berlaku?
NoodleOfDeath
1
Pada 2019: php-fig.org/psr/psr-12/#43-properties-and-constants menyatakan bahwa vartidak boleh digunakan, dan visibilitas harus dideklarasikan pada semua properti.
Charles Wood
79

Kata varkunci digunakan untuk mendeklarasikan variabel dalam kelas di PHP 4 :

class Foo {
    var $bar;
}

Dengan PHP 5 properti dan visibilitas metode ( public, protecteddan private) diperkenalkan dan dengan demikian varsudah usang.

Gumbo
sumber
17
Dalam PHP 5.3 varsudah usang :)
Ionu Ion G. Stan
8
Jika sudah tidak digunakan lagi, praktik apa yang terbaik saat ini di 5.3 - untuk menggunakannya atau tidak menggunakannya? Bisakah Anda menggunakannya private var $foo = 'bar';?
Tom Auger
1
Adakah yang tahu mengapa itu tidak digunakan lagi?
Simon East
19
Itu tidak dihargai dalam 5.1.3 - satu-satunya alasan yang diberikan adalah "untuk alasan kompatibilitas" . Saya pikir praktik terbaik adalah menggunakannya hanya jika Anda harus kompatibel dengan PHP 4. Tentu saja jangan lakukan private var- itu akan menghancurkan segalanya dengan cepat, seperti halnya varhanya sebuah sinonim untuk publicdalam PHP 5.
cincodenada
2
varbukan sinonim sejati karena publictidak dapat digunakan untuk mendeklarasikan anggota statis atau konstanta.
Colin O'Dell
27

Saya mengutip dari http://www.php.net/manual/en/language.oop5.visibility.php

Catatan: Metode PHP 4 untuk mendeklarasikan variabel dengan kata kunci var masih didukung untuk alasan kompatibilitas (sebagai sinonim untuk kata kunci publik). Di PHP 5 sebelum 5.1.3, penggunaannya akan menghasilkan E_STRICTperingatan.

taatparya
sumber
Saya melakukan tes. Tidak dikembalikan E_STRICT! sandbox.onlinephpfunctions.com/code/…
Wallace Maxters
1
@ WallacedeSouza, itu karena Anda telah menggunakan PHP 7 dalam contoh Anda. Itu tidak valid hanya dalam versi 5.0 - 5.1.3
RedClover
8

Jawaban: Dari php 5.3 dan >, varkata kunci setara dengan publicketika mendeklarasikan variabel di dalam kelas.

class myClass {
  var $x;
}

sama dengan (untuk php 5.3 dan >):

class myClass {
  public $x;
}

Sejarah: Sebelumnya norma untuk mendeklarasikan variabel di kelas, meskipun kemudian menjadi terdepresiasi, tetapi kemudian (PHP 5.3) menjadi tidak terdepresiasi.

Webeng
sumber
5

Jadi pada dasarnya ini adalah gaya lama dan tidak menggunakannya untuk versi PHP yang lebih baru. Lebih baik menggunakan kata kunci Publik, jika Anda tidak menyukai kata kunci var. Jadi, alih-alih menggunakan

class Test {
    var $name;
}

Menggunakan

class Test {
   public $name;
}
kta
sumber
mengapa kamu mengatakan itu? Adakah berita tentang varpenghinaan yang belum saya dengar? keduanya harus bersinonim
NappingRabbit
Dari manual PHP: "Metode PHP 4 untuk mendeklarasikan variabel dengan kata kunci var masih didukung untuk alasan kompatibilitas (sebagai sinonim untuk kata kunci publik)." php.net/manual/en/language.oop5.visibility.php
Tomark
1

var digunakan seperti publik .jika varable dideklarasikan seperti ini di kelas var $ a; jika berarti ruang lingkupnya adalah publik untuk kelas. dengan kata sederhana var ~ publik

var $a;
public
kumar
sumber
0

di sini dan sekarang dalam 2018menggunakan varuntuk deklarasi variabel identik dengan publicseperti pada

class Sample{
    var $usingVar;
    public $usingPublic;

    function .....

}
NappingRabbit
sumber