Rumah > php教程 > php手册 > teks badan

Ringkasan pengetahuan asas asas PHP_php

WBOY
Lepaskan: 2016-05-16 09:00:07
asal
1997 orang telah melayarinya

Sesetengah konsep PHP ini sukar difahami pada mulanya, saya menyenaraikan semuanya, berharap dapat membantu sesetengah orang dan mengurangkan duri dalam perjalanan ke hadapan.

1. pembolehubah pembolehubah

pembolehubah_pembolehubah.php

Salin kod Kod adalah seperti berikut:

$a = 'hello ';
$hello = 'hello everyone';

gema $$a.'
';

$b = 'John';
$c = 'Mary';
$e = 'Joe';

$pelajar = tatasusunan('b','c','e');

gema ${$pelajar[1]};
/*
foreach($pelajar sebagai $kerusi){
bergema $$kerusi.'
';
}
$$var[1]
${$var[1]} untuk #1
*/

$a = 'hello';

Tetapkan helo kepada pembolehubah $a, jadi $$a = ${hello} = $hello = 'hello everyone';

Jika untuk $$pelajar[1], Ini akan menyebabkan kekeliruan, dan penterjemah PHP mungkin tidak dapat memahaminya Walaupun '[' mempunyai operator yang lebih tinggi, hasilnya mungkin bukan output.

Cara yang baik untuk menulisnya ialah: ${$students[1]} = ‘Mary’

2. Fungsi tatasusunan (fungsi tatasusunan)

fungsi_tatasusunan.php

Salin kod Kod adalah seperti berikut:

gema ' ';
$numbers = array(1,2,3,4,5,6);
print_r($numbers);
echo '< ;br / >';

// mengalihkan elemen pertama daripada tatasusunan
// indeks akan ditetapkan semula
$a = array_shift($numbers);

gema 'a: '.$a.'
';
print_r($numbers);

// elemen tolak ke hadapan tatasusunan
// mengembalikan kiraan tatasusunan dan tetapkan semula indeks tatasusunan
$b = array_unshift($nombor, 'first');
gema '
b: '.$b.'
';
print_r($numbers);

gema '


';
gema '

pop & tolak

';
// keluarkan elemen terakhir daripada tatasusunan
$c = array_pop($numbers);
print_r($numbers);
gema '
';

// tolak elemen ke tatasusunan terakhir
$d = array_push($nombor, 'terakhir');
gema 'd: '.$d.'
';

print_r($numbers);



Lagi rujukan fungsi tatasusunan

3. tarikh dan masa (masa dan tarikh)

Terdapat 3 cara untuk mencipta masa unix (bilangan saat dari 1970/1/1 hingga sekarang)

masa(); Mengembalikan cap masa semasa

mktime($hr, $min, $sec, $month, $day, $year(6,30,0,5,22 ); 2012) Kembalikan cap masa 2012 5/22 6:30:00

strtotime($string); strtotime("+1 day") Kembalikan cap masa ini esok lagi 'Isnin lalu' ' Lasy Year '

tarikh semak($bulan, $hari, $tahun); 🎜>Setelah mendapat cap masa, kita perlu menukarnya menjadi boleh dibaca, seperti 2012/5/22

Kami mempunyai 2 kaedah tarikh($format, $timestamp($format [,$timestamp]); )

Adalah disyorkan untuk menggunakan jenis kedua, strftime("%Y-%m-%d %H:%M:%S"); // return 2012-05-22 15:46: 40



Rujukan lebih masa dan tarikh

5. pembolehubah pelayan (pelayan dan maklumat persekitaran pelaksanaan)


$_SERVER

server_variables.php



Salin kod Kod adalah seperti berikut:
gema 'butiran SERVER:
' ;
gema 'SERVER_NAME: '.$_SERVER['SERVER_NAME'].'
'; br /> ;';
gema 'SERVER_PORT: '.$_SERVER['SERVER_PORT'].'
';
gema 'DOCUMENT_ROOT: '.$_SERVER['DOCUMENT_ROOT'].'
';
gema '
';

gema 'Butiran halaman:
'; _SERVER[' REMOTE_ADDR'].'
';
gema 'REMORT_PORT: '.$_SERVER['REMOTE_PORT'].'
'; .$_SERVER ['REQUEST_URI'].'
';
gema 'QUERY_STRING: '.$_SERVER['QUERY_STRING'].'
'; : '. $_SERVER['REQUEST_METHOD'].'
';
gema 'REQUEST_TIME: '.$_SERVER['REQUEST_TIME'].'
'; 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT'].'
';
gema '
';

Maklumat lanjut

6.pembolehubah_skop (skop pembolehubah statik global)

static_variables.php

Salin kod Kod adalah seperti berikut:

ujian fungsi()
{
$a = 0;
echo $a;
$a++;
}

ujian();
gema '
';
ujian();
gema '
';
ujian();
echo '
';

gema '


';
ujian fungsi1()
{
statik $a = 0;
echo $a;
$a++;
}

ujian1();
gema '
';
ujian1();
gema '
';
ujian1();
echo '
';

Pembolehubah $a dalam fungsi test() tidak menyimpan hasil $a++, dan panggilan berulang untuk test() tidak meningkatkan nilai $a

Pembolehubah $a dalam fungsi test1() mengisytiharkan staik $a = 0, iaitu pembolehubah statik.

Petikan: Pembolehubah statik hanya wujud dalam skop fungsi setempat, tetapi ia tidak kehilangan nilainya apabila pelaksanaan program meninggalkan skop ini.

Pembolehubah statik hanya boleh wujud dalam skop fungsi setempat, iaitu badan fungsi test1(), tetapi apabila atur cara meninggalkan skop test1(), pembolehubah statik tidak akan kehilangan nilainya, iaitu $ pembolehubah akan Meningkat sebanyak 1; apabila test1() dipanggil semula, $a = 1;

pembolehubah_global.php

Salin kod Kod adalah seperti berikut:

$a = 1;
$b = 2;

fungsi Sum()
{
global $a, $b;

$b = $a + $b;
}

Jumlah();
gema $b;
gema '


';
$a = 1;
$b = 2;

fungsi Sum1()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

Jumlah1();
gema $b;

Petikan: Dalam PHP pembolehubah global mesti diisytiharkan global di dalam fungsi jika ia akan digunakan dalam fungsi itu

Jika pembolehubah ini akan digunakan dalam fungsi, pembolehubah global mesti ditakrifkan dalam fungsi tersebut. Ini boleh mengelakkan banyak masalah.

Maklumat lanjut

7.rujukan(rujukan)

rujukan_pembolehubah.php

Salin kod Kod adalah seperti berikut:

$a = 'arist'
$b = $ a ;
$b = 'ming';
gema "Nama saya:{$a}. Tetapi ibu saya memanggil saya {$b}.
"; echo '
';

$a = 'arist';
$b = &$a; " Nama saya:{$a}. Dan ibu saya memanggil saya {$b}.
"; panggil saya Mingming , tetapi bos saya akan panggil saya Xiaoyan sama ada jelas atau Xiaoyan, itu saya.
'&' Dan inilah cara orang yang berbeza memanggil kami alias, iaitu rujukan, yang bersamaan dengan $a = {saya, atau nilai dalam ingatan}, $b = {pemimpin, ibu atau pembolehubah}
Melalui &, $b menunjuk kepada satu-satunya nilai $a yang sama dalam ingatan. Jadi tidak kira apa bos anda memanggil anda, atau apa yang ibu anda panggil anda, anda adalah anda. Cuma nama sahaja yang berbeza.

Jadi selepas lulus rujukan, kami menukar nilai $b dan juga menukar nilai $a.

8. hantar pembolehubah rujukan kepada fungsi (lalukan parameter rujukan kepada fungsi)






Salin kod

Kodnya adalah seperti berikut:
function ref_test(&$var){ return $var *= 2; 🎜>$a = 10; ref_test($a); menyalin pembolehubah, tetapi nilai sebenar, Jadi apabila kita memanggil fungsi ref_test($a), nilai $a telah ditukar, jadi pada akhirnya $a = 20; >9. nilai pulangan fungsi rujukan (nilai pulangan fungsi rujukan)
nilai_pulangan_rujukan.php





Salin kod


Kodnya adalah seperti berikut:

fungsi &increment(){
statik $var = 0;
$var++; $a =& increment(); // 1
increment(); // 2
$a++; //3
increment(); // 4
echo "a: {$a }";



Mula-mula isytiharkan fungsi rujukan. Dalam badan fungsi, isytiharkan pembolehubah statik $var, yang boleh menyimpan nilai yang meningkat;
$a =& increment( ); Pernyataan ini ialah nilai pulangan pembolehubah $a reference function increment(). $ a = & $b;

Jadi increment() dan $a kedua-duanya menunjuk kepada nilai yang sama.


Maklumat lanjut



OOP Objek
1. Ralat maut: Menggunakan $this apabila tidak dalam konteks objek

Kesilapan ini pastinya mudah berlaku apabila anda mula-mula belajar OOP, kerana terdapat konsep yang anda tidak faham. Kebolehcapaian kelas juga boleh dikatakan sebagai skop Anda juga boleh memikirkan orang Cina di luar negara Dia tidak mempunyai budaya dan tidak bercakap bahasa asing (mungkin dia tahu sedikit). Berkomunikasi dengan orang asing kerana mereka tidak dilahirkan di negara yang sama. Jadi bagaimanakah ralat itu berlaku? Lihat contoh di bawah:


Salin kod

Kod adalah seperti berikut: kelas Trones { $fire awam statik = "Saya api."; $air awam = "Saya adalah air";
fungsi statik getFire( ) {
kembalikan $ini-> api ; // salah
}
fungsi statik getWater( ) {
  kembalikan $self::water ; // salah
}

fungsi statik Fire( ) {
return self: :$fire ; // pastikan anda menggunakan self untuk mengakses sifat statik sebelum anda menggunakan fungsi
}
}

/*
Ralat maut: Menggunakan $this when bukan dalam konteks objek
*/
//echo Trones::getFire( ) ;
//echo Trones::getWater( ) ;

// betul
echo Trones: :Fire( );
echo "
" ;
$trones = new Trones ;
$trones->fire ; // Notis: Undefined property: Trones::$fire ( berdasarkan tetapan ralat defferent) mudah ialah ralat
echo Trones::$fire ;



Kesilapan ini sangat klasik dan sangat praktikal Mari kita lihat definisi statik dahulu:

Mengisytiharkan sifat kelas atau kaedah sebagai statik menjadikannya boleh diakses tanpa memerlukan instantiasi kelas Sifat yang diisytiharkan sebagai statik tidak boleh diakses dengan objek kelas instantiated (walaupun kaedah statik boleh).
Terjemahan: Mentakrifkan sifat atau kaedah kelas sebagai statik membolehkannya diakses terus tanpa memulakan kelas. Sifat yang ditakrifkan sebagai statik tidak boleh diakses oleh objek kelas menggunakan operator objek * -> * (ia boleh diakses melalui kaedah statik).

Contoh perihalan:

Baris 7 dan Baris 10 melakukan kesilapan yang sama Yang pertama adalah menggunakan operator objek untuk mengakses pembolehubah statik. Jika anda melihat definisi, $ini ialah pembolehubah pseudo bersamaan dengan objek, contoh. Jika anda menggunakan operator objek -> untuk mengaksesnya, ralat akan dilaporkan.

Begitu juga, anda tidak boleh menggunakan pengendali statik :: untuk mengakses pembolehubah awam. Akses yang betul mestilah baris 14 dan 25, satu diakses dalam definisi kelas (self:: === Trones::), dan satu lagi diakses di luar kelas.

Untuk kelas yang diwarisi, peraturan di atas juga terpakai.


2. Ralat maut: Panggilan ke kaedah persendirian

Terdapat siri TV yang sangat menarik baru-baru ini yang dipanggil Game of Thrones. Kami mengandaikan bahawa terdapat 3 pihak, 7 raja, rakyat biasa dan seorang wanita naga. Ketiga-tiga mereka bersaing di bawah untuk kemenangan terakhir, iaitu mahkota.

Kisah berikut juga mempunyai tajuk: Keterlihatan kelas (keterlihatan) Jika anda tahu jawapan akhir, anda boleh melangkau bahagian penjelasan.


Salin kod

Kod adalah seperti berikut:

 kelas Trones {
     dilindungi $fire = " api ";
     awam $air = " air " ;
     statik peribadi $trones  = "Trones";

     fungsi dilindungi getFire( ) {
         $this->fire ;
     }

     fungsi awam statik TheDragenOfMather( ) {     }

     fungsi awam statik getWater( ) {
         pulangan __KAEDAH__ ;
    >
     fungsi peribadi statik getTrones( ) {
         return  self::$trones ;
     }

 }

 class Kings memanjangkan Trones {
)     Fungsi statik {
         return __METHOD__."mendapat ".self::getTrones( );
     }
 }

 kelas People extends Trones{
     fungsi statik ThePeople( )> {     }
 }
 echo Kings::TheSevenKing( ) ;
 echo Trones::TheDragenOfMather( ) ;
 echo People ::ThePeople( ) ;



正确答案是:7国征战 内斗,平民死伤无数,龙女想年朏最终谁也没有得到皇冠和胜利。哈哈。

当static 碰到 private ,结合产生复杂,也产生美;就像抽象的人,像我们大学老师宲的数师宲易的公开数学课很好)
如果想要龙女 获得最后的胜利, 你只要帮她一把 将13行的 $this->getFire() 这只了样的道理 你无法在一个静态函数里 使用任何对象操作符。

怎么使人民获得王冠呢? 你去奋斗吧!

如果你不构建大型的框架和网站 这些概念比如 Antara Muka Laksanakan abstrak 。。。 你还是不知>道🎜。
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan