Cara memulakan pengaturcaraan dalam PHP dari awal (anda sendiri). Mengapa ramai orang gagal? Pengalaman peribadi ... percubaan dan kesilapan

Selamat hari!

Mungkin, setiap daripada kita, setelah menonton filem mengenai penggodam dan pengaturcara yang hebat, ingin memahami sekurang-kurangnya sedikit mengenai perkara ini. Dan saya akan maklum bahawa tidak, tidak, dan mereka mengemukakan soalan serupa kepada saya (walaupun saya tahu bagaimana cara memprogram, tetapi saya jauh dari pengaturcara profesional. Dan kepada orang yang jauh dari bidang IT, ini tidak dapat dijelaskan sama sekali ...) .

Secara umum, sekarang terdapat beberapa kursus latihan, buku dan artikel mengenai topik ini di Internet. Namun, ketika saya sendiri mencuba (belajar bahasa dari mereka) dari baris pertama kod "hello world!" dalam PHP untuk beralih ke sesuatu yang lebih serius dan berlaku dalam kehidupan - tidak ada yang berjaya! Seolah-olah ada jurang atau kekosongan tertentu dalam buku-buku ini: tidak jelas bagaimana beralih dari asas dan pengetahuan tentang beberapa fungsi ke sesuatu yang lebih ...

Lama kelamaan, saya berjaya mengetahui tahap PHP untuk menulis CMS sederhana saya sendiri (CMS adalah enjin untuk laman web ini)  dan satu artikel membantu saya dengan ini (malangnya sumber itu tidak lagi wujud di rangkaian, namun, saya sangat berterima kasih kepada pengarang itu untuk "tendangan" ini "ke arah yang dikehendaki).

Dengan mempertimbangkan artikel itu dan visi saya, saya akan membuat sketsa nota ini untuk mereka yang benar-benar ingin memulakan program di PHP, tetapi mereka gagal. Secara umum, saya mempunyai pendapat saya yang sangat radikal mengenai pandangan ini, jadi di sini anda tidak akan mendapat nasihat mengenai buku dan kursus - lihat saja apa yang harus dilakukan berdasarkan pengalaman anda ...

*

Di mana untuk memulakan pengaturcaraan (dalam PHP)

LANGKAH 1 - hobi, keinginan untuk menyelesaikan beberapa masalah

Mungkin perkara yang paling penting adalah "menangkap api" dengan beberapa tugas (tanpa ini sangat sukar untuk belajar sesuatu yang baru). Sebagai contoh, pada satu masa saya sangat memerlukan (SANGAT!) Supaya skrip PHP dapat membaca fail teks tertentu, dan memotong beberapa kepingannya mengikut templat saya. Di satu pihak, semuanya kelihatan sederhana, di sisi lain, bagi orang yang tidak pernah menulis 2 baris kod sendiri, tugasnya sangat sukar!

Saya terpaksa membeli skrip pertama ini ... Tetapi kemudian saya memerlukan yang lain yang serupa (dan kemudian yang lain). Dan di sini, di sini, saya terbawa dengan PHP ... Ngomong-ngomong, selepas beberapa malam saya dapat menulis skrip seperti itu sendiri, setelah menderita selama satu atau dua jam ...

Baiklah, secara umum, secara umum, saya ingin perhatikan bahawa jika tidak ada minat dalam pengaturcaraan, maka cepat mulakan kajian, sebagai peraturan, cepat dan selesai. Dan saya bimbang tidak ada kursus dan guru yang akan memperbaikinya.

Sehingga anda mula menaip kod sendiri dan melihat apa yang "dipaparkan" untuk anda, apa yang terdapat dalam pemboleh ubah anda, dan bagaimana data berubah di dalamnya ketika menggunakan beberapa fungsi, anda tidak dapat memulakan pengaturcaraan (ini semata-mata pendapat saya!). Tiada jumlah buku "pintar" yang akan membantu anda.

Senang bermimpi!

Ngomong-ngomong, banyak pemula (termasuk saya sendiri) mempunyai satu kesalahan besar: mereka menghabiskan banyak masa untuk menyiapkan, memuat turun pelbagai kursus dan video. Kemudian mereka melihat semuanya, mempelajarinya, menulisnya di buku nota, dll. Tetapi mereka tidak melakukan perkara yang paling penting - mereka tidak mula menaip kod itu sendiri, dan melihat bagaimana ia dilaksanakan ...

Baiklah, sekarang lebih dekat dengan latihan (saya sedang menyelesaikan falsafah).

LANGKAH 2 - memasang alat Denwer, Open Server, Notepad ++, Total Commander. Mulakan!

Anda tidak perlu membeli hosting untuk menulis skrip dan eksperimen pertama anda. Lebih baik menggunakan pelayan web tempatan percuma: Denwer atau Open Server (saya secara peribadi mengesyorkan Open Server, dan di situlah saya akan menunjukkan kepada anda bagaimana dan apa yang harus dilakukan) . Ngomong-ngomong, jika anda memilih  Open Server , maka versi minimum akan cukup untuk permulaan (perhatikan: hanya ada beberapa di antaranya di laman web, dengan perpustakaan yang berbeza).

Untuk pendailan kod (teks) secara langsung senang digunakan khas. notepad dengan penekanan sintaks. Saya kagum dengan Notepad ++ dalam hal ini. Notepad ringkas, ringan, percuma dan senang (lebih banyak ciri berbanding notepad Windows yang dibina).

Hai dunia! (Notepad ++)

Saya juga mengesyorkan menggunakan beberapa jenis komander. sangat menyusahkan untuk menavigasi melalui folder yang berlainan di Explorer, dan membuka beberapa fail sekaligus (anda tersesat dan lupa di mana). Saya akan mengesyorkan memilih Total Commander (komander yang sangat senang dan kaya dengan ciri).

Skrip pertama: persediaan!

1) Setelah memuat turun dan memasang OpenServer, anda harus mempunyai folder dengan nama yang sama di lokasi yang dipilih pada cakera - dalam kes saya ialah "e: \ openserver5.2 \" . Folder ini harus mengandungi direktori "domain" - di dalamnya anda perlu membuat folder dengan nama laman web anda (contohnya, "my-site.ru" - contoh di bawah).

Ingat nama folder ini, folder inilah yang perlu ditaip di bar alamat penyemak imbas semasa menulis skrip.

OpenServer - contoh membuat "laman web" (tempatan)

2) Seterusnya, buat fail "index.php" di direktori "my-site.ru" dan masukkan baris berikut ke dalamnya:

gema 'Hello World!' ;

Hai dunia! "Program" pertama!

Simpan fail.

Catatan: jika seseorang bekerja dengan php untuk pertama kalinya, perhatikan perintah 'echo' - ini bermaksud untuk memaparkan segala sesuatu setelahnya dalam petikan.

3) Kemudian mulakan OpenServer (atau mulakan semula jika anda menjalankannya). Tutup dan buka semula penyemak imbas anda. Ini diperlukan agar OpenServer dapat mengubah beberapa fail di Windows anda: supaya laman web "my-site.ru" yang dibuat kami akan dibuka di penyemak imbas anda.

OpenServer - memulakan pelayan web tempatan

Secara umum, jika OpenServer berjaya dilancarkan, kotak centang hijau harus dinyalakan di dulang anda (jika berwarna merah atau kuning, cuba mulakan semula. Dalam beberapa kes, anda perlu menjalankannya sebagai pentadbir. Walau bagaimanapun, kotak centang merah tidak berfungsi lagi akan membenarkan ...) .

OpenServer - dan berjalan

4) Sebenarnya, masih perlu menaip " my-site.ru " kami (tanpa tanda petik) di bar alamat penyemak imbas , dan ia akan menunjukkan ucapan dari fail index.php yang dibuat (lihat skrin di bawah).

Berfungsi!

5) Harap maklum bahawa jika pada contoh pertama kami segera menunjukkan sebaris teks, maka pada contoh berikutnya saya sedikit mengubah kodnya. Sebagai peraturan, ketika mengembangkan skrip, Anda berurusan dengan pemboleh ubah yang dapat berisi berbagai data: rentetan, angka, dll.

Mari buat satu pemboleh ubah ("$ p") dan masukkan teks kami di dalamnya. Lihat contoh di bawah:

$ p = 'Hello World!';

gema $ p;

Pemboleh ubah pertama

Seperti yang ditunjukkan di bawah, hasilnya akan sama! Mereka. penyemak imbas juga akan mencetak rentetan kami. Walau bagaimanapun, kodnya sedikit berbeza: sekarang teks terkandung dalam pemboleh ubah "$ p", yang kami keluarkan ...

Memaparkan data dari pemboleh ubah

6) Contoh ilustrasi lain di bawah. Kali ini, saya membuat dua pemboleh ubah "$ p" dan "$ p2", dan kemudian menggabungkan rentetan tersebut, dan memasukkannya ke dalam pemboleh ubah "$ p3". Perhatikan bahawa garis dihubungkan menggunakan titik sederhana.

$ p = 'Hello World!';

$ p2 = 'Ini saya!';

$ p3 = $ p. $ p2;

gema $ p3;

Contoh lain (dua pemboleh ubah)

Hasilnya dapat diramalkan ...

Berfungsi ...

Harap maklum bahawa disyorkan untuk memandu dalam semua contoh secara manual untuk pemahaman dan penguasaan yang lebih cepat.

LANGKAH 3 - menguraikan tugas menjadi komponennya. Menyahpepijat setiap langkah

Mungkin ini adalah langkah yang paling penting untuk memulakan pengaturcaraan, demi saya memulakan artikel ini ...

Tidak kira betapa sukarnya tugas anda yang ingin diselesaikan, tugas itu dapat dibahagikan secara bersyarat kepada tiga peringkat:

  1. memperoleh data awal (kemasukan data);
  2. transformasi data;
  3. output data: ke skrin, atau hanya ke pemboleh ubah. (lihat tangkapan skrin di bawah: Saya secara konvensional membahagikan salah satu contoh artikel tersebut ke dalam tiga langkah ini, sehingga jelas mengenai apa itu)

Tahap apa skrip boleh dibahagikan kepada

Sebagai peraturan, tahap pemerolehan dan transformasi data adalah yang paling sukar  . Dan banyak pemula tidak tahu bagaimana menulis kod 100 baris tanpa keliru atau tersilap di dalamnya.

Sebenarnya, selepas setiap baris kod, anda dapat melihat apa yang anda ada dalam pemboleh ubah. Dan secara beransur-ansur, menambahkan satu baris kod pada satu masa, dan melihat bagaimana pemboleh ubah berubah, bawa mereka ke bentuk yang diinginkan (dan selesaikan masalahnya!) Untuk ini, PHP mempunyai fungsi hebat "var_dump ($ p);" dan "print_r ($ p);".

Dan untuk pemula, saya cadangkan menggunakannya sepanjang masa! Ya, seperti itu, pengaturcaraan kadang-kadang sangat membosankan

Saya akan mempertimbangkan contoh di bawah.

Bayangkan, anda tidak tahu apa yang anda ada dalam pemboleh ubah "$ p3" (dalam kod, dalam contoh di bawah, anda melihat garis yang dimuat ke dalamnya, dan secara teori ia seharusnya ada. Tetapi dalam masalah sebenar yang lebih kompleks - ini tidak selalu berlaku, pemboleh ubah mungkin mengandungi kekacauan yang lengkap, bukannya garis yang diperlukan ...).

Jadi, untuk melihat apa yang ada dalam pemboleh ubah, anda hanya memasukkan perintah "var_dump ($ p3);" selepas itu (dan simpan fail).

Contoh Var_dump

Akibatnya, di penyemak imbas (semasa memuat semula halaman), anda akan melihat "string (31) ...." dipaparkan. Mereka.  var_dump memberitahu anda jenis data (rentetan - tali) dan panjang tali ini (31 - aksara). Ini sangat berguna semasa menyahpepijat program panjang (skrip)!

tali (31)

Sebagai contoh, sebelum "var_dump ($ p3);" Saya menetapkan $ p3 menjadi 1. Hasilnya berbeza (lihat di bawah).

Sekiranya anda menambah nombor pada pemboleh ubah

Int (1)

Contoh: membaca fail teks dan memotong ayat pertama

Semua yang saya tulis di atas akan dijelaskan dengan baik dengan contoh. Sebagai contoh, saya mengambil tugas mudah: buka fail teks, cari titik pertama di dalamnya (iaitu akhir ayat), dan potong semuanya dari awal fail hingga ke tahap ini.

Di satu pihak, nampaknya sukar bagi mereka yang tidak pernah melakukan PHP. Sebaliknya, dengan membahagikan tugas menjadi komponen dan menggunakan penyahpepijatan (var_dump), anda boleh menulis perkara yang lebih kompleks ...

Oleh itu, adalah logik untuk memecahkan tugas ini kepada beberapa peringkat:

  1. membaca fail teks menjadi pemboleh ubah;
  2. cari titik dalam fail teks (mis. cari nombor sirinya, misalnya, watak ke-35);
  3. potong sehelai tali: dari watak pertama hingga titik (hingga nombor ordinalnya).
  4. paparkan hasilnya di skrin.

1) Membaca fail menjadi rentetan

Sebagai fail teks - Saya mengambil teks artikel ini, dan memasukkannya ke dalam fail "text.txt", yang saya salin ke folder "e: \ openserver5.2 \ domains \ my-site.ru \" (iaitu, letakkan di sebelah dengan "index.php").

Seterusnya, anda perlu mencari fungsi untuk menyelesaikan komponen pertama: membaca fail menjadi pemboleh ubah. Di sinilah "Google" banyak membantu: pertanyaan seperti "PHP membaca fail" menjalankan tugasnya dan membantu mencari fungsi  file_get_contents () - itulah yang kami gunakan!

By the way, dalam hal ini, saya mengesyorkan direktori //php.net (penolong yang hebat!).

$ p = file_get_contents ('text.txt'); // baca fail menjadi pemboleh ubah

var_dump ($ p);

Kami membaca fail menjadi pemboleh ubah

Hasilnya, jika semuanya dimasukkan dengan betul, kita akan melihat isi pemboleh ubah "$ p": ia akan mengandungi teks panjang (baris). Sekiranya ini tidak berlaku, kesalahan dilakukan di suatu tempat ...

tali (1278)

Sebenarnya, ini adalah data awal kami. Sekarang kita perlu mencari titik pertama (".") Dalam artikel itu.

2) Cari simbol titik

Secara amnya, PHP mempunyai banyak fungsi untuk bekerja dengan rentetan. Untuk mencari titik pertama dalam contoh ini, saya memutuskan untuk menggunakan " strpos (); ". Di bawah ini saya tidak memberikan teks lengkap kod skrip, namun, perhatikan fungsi itu sendiri dan pemboleh ubah mana yang saya tambahkan ke var_dump (yang mana nombor ordinal titiknya harus muncul, iaitu "$ t", dan pemboleh ubah "$ p "- kita sudah melakukan debug pada langkah pertama, ia mengandungi teks).

$ t = strpos ($ p, '.');

di mana: $ p - pemboleh ubah di mana kita mencari simbol yang diinginkan;

'.' - yang kita cari.

Pencarian titik

223 adalah simbol, ini adalah titik. Kami menjumpainya!

3) Potong garis ke titik

Untuk memotong tali, PHP mempunyai fungsi seperti substr (). Sangat mudah untuk menggunakannya, saya akan menunjukkan kepada anda dengan contoh:

$ s = substr ($ p, 0, $ t);

Di mana:

$ p - rentetan dari mana kita akan memotong;

0 - watak ordinal permulaan (permulaan sekeping yang diinginkan);

$ t adalah watak akhir ordinal (hujung bahagian yang dikehendaki). Dalam contoh kami, inilah titik yang kami dapati.

Hasilnya, kod lengkap akan kelihatan seperti ini:

$ p = file_get_contents ('text.txt'); // baca fail menjadi pemboleh ubah

$ t = strpos ($ p, '.'); // cari titik pertama dalam baris $ p

$ s = substr ($ p, 0, $ t); // potong rentetan dari watak 0 hingga ke titik

var_dump ($ s);

Putus talian

Perhatikan bahawa kami juga mengubah pemboleh ubah dalam "var_dump ($ s);" setelah langkah ini  . ... Oleh itu, kita melihat bahawa rentetan kita menjadi kecil, hanya 223 aksara. Kami secara praktikal menyelesaikan masalah, tidak banyak yang tersisa ...

Potong!

4) Masalahnya diselesaikan!

Secara umum, menggantikan "var_dump" dengan "echo" - kita mendapat contoh yang dapat diselesaikan. Sekarang ayat pertama dari fail teks dipaparkan di penyemak imbas semasa membuka "my-site.ru".

Skrip sudah siap!

Perhatikan bahawa "echo" tidak mencetak perincian jenis data. Anda hanya melihat garis ...

Cadangan itu dipotong

LANGKAH 4 - cabaran baru ...

Seperti yang anda bayangkan, tugas dalam contoh di atas hanyalah penurunan di lautan! Sudah tentu, ia dapat diselesaikan dalam satu baris dan dengan cara yang lebih elegan (semua yang ditunjukkan di atas hanyalah contoh untuk menunjukkan intipati dan bagaimana anda boleh bergerak untuk membuat skrip dengan beratus-ratus baris dan yang menyelesaikan masalah yang jauh lebih kompleks).

Sudah tentu, anda boleh mencari bukan sahaja titik, tetapi juga urutan simbol, gambar, tag, dll. Anda boleh membaca bukan sahaja fail (iaitu mendapatkan data awal daripadanya), tetapi juga halaman dari laman web lain, membaca URL semasa pengguna, mendapatkan data dari borang yang diisi oleh pengguna, dll.

Oleh itu, membahagikan satu tugas besar kepada beberapa yang sederhana, dan yang kecil menjadi beberapa yang kecil, dan yang kecil menjadi beberapa baris kod dan fungsi tertentu (yang masing-masing akan anda lalui dan nyahpepijat secara manual) - anda dapat menyelesaikan masalah yang sangat besar. Ya, walaupun pada mulanya bengkok dan serong, tetapi yang utama ialah anda akan melakukannya sendiri, dan anda akan mempunyai minat untuk mencapai tahap tertentu dalam pembelajaran.

Lebih-lebih lagi, dengan setiap barisan baru - pengalaman, kelajuan pengembangan, dan kemahiran anda akan terus meningkat. Dan jika demikian, mungkin saya menulis baris ini dengan alasan ...

Jadi, tetapkan tugas baru, dan teruskan: cari fungsi langkah demi langkah, ubah pemboleh ubah, selesaikan masalah kecil langkah demi langkah. Perkara utama adalah tidak bergantung pada buku dan kursus latihan - sehingga anda mula melakukannya sendiri, anda tidak akan belajar ...

Perkara yang tidak mereka bincangkan dalam iklan buku dan kursus

Mereka biasanya berjanji untuk mengajar anda pengaturcaraan dalam seminggu atau sebulan (maksimum 2), menjanjikan gaji besar dan status tinggi. Namun, mereka lupa untuk menambahkan beberapa perkara penting, yang akan saya nyatakan di bawah ...

1) Ketegangan mata yang berat

Duduk seharian dan membaca kod, menyuntingnya, dll sama dengan menonton filem sepanjang hari, berehat di kerusi. Jangan percayalah - cuba sekurang-kurangnya setengah hari untuk mengedit dokumen Word atau Excel dengan teliti (kira-kira setanding).

2) Keperluan untuk sentiasa belajar

Pada masa ini dalam banyak profesion, anda mesti selalu belajar, tetapi pengaturcara - sepuluh kali lebih banyak! Secara umum, secara umum, bidang IT melonjak setiap tahun dengan pesat, terus mengikuti perkembangannya (ingat, kira-kira 10 tahun yang lalu, Internet mula muncul hanya di bandar-bandar, dan sekarang bahkan di kampung-kampung mereka membicarakan bitcoin ...) ...

3) Kerja tidak aktif

Sekiranya di banyak kawasan, anda dapat menghabiskan sebahagian dari hari kerja anda di tempat "berjalan kaki", maka tempat kerja pengaturcara hanya di PC, dan tidak ada tempat lain ... Cara hidup ini, bagaimanapun, dari masa ke masa mula mempengaruhi kesihatan: kembali, tangan, bahu, mata ... - pada akhir hari mereka mula menjadi sangat letih.

4) Gaji pengaturcara biasa tidak selalu tinggi

Sehingga anda memperoleh pengalaman, kemungkinan besar, anda tidak akan menerima lebih banyak hubungan dengan bidang aktiviti lain. Pada pendapat saya, era gaji yang terlalu tinggi di kawasan ini sedang berlalu (berlalu?). Walau bagaimanapun, kerja pakar yang baik di kawasan ini dibayar dengan baik!

5) Membosankan untuk menyelesaikan masalah orang lain ...

Sekiranya anda berminat untuk memprogram dan "menerjemahkan" idea anda menjadi kenyataan, ini tidak bermaksud sama sekali akan menarik untuk menyelesaikan masalah orang lain - ini sama sekali tidak! Kadang-kadang, menggali kod menjadi sangat membosankan dan kelabu ... sekurang-kurangnya "melolong" (saya fikir tidak semua orang akan memahami garis-garis ini) .

PS : Sekiranya anda berhenti kerja sekarang dan cuba menjadi pengaturcara?

Soalan yang sangat popular ... Terutama kerana gaji yang tinggi dari beberapa kategori pengaturcara.

Membuang segalanya dengan segera - pasti tidak (sekurang-kurangnya, pandangan saya). Apa pun yang ada, dan apa sahaja yang anda putuskan, untuk bersenam dengan berkesan, muat otak dan belajar sesuatu yang baru - seseorang mampu tidak lebih dari 2-2,5 jam sehari (ini benar-benar demikian, anda boleh memeriksa sendiri - walaupun pada hujung minggu boleh buat lebih banyak). Oleh itu, untuk mula mempelajari kerajinan baru anda - sangat mungkin untuk mengukir satu jam pada waktu pagi atau petang pada akhir hari bekerja, di suatu tempat untuk "mencuri" sebahagian hari cuti.

Sekiranya anda berjaya, anda akan mendapat pengalaman, dll. - anda boleh cuba bercuti dan mendapatkan pekerjaan sebagai pekerja magang (mungkin separuh masa), lihat apakah anda suka semuanya dan bersenam ...

Juga, tidak perlu mempunyai "bantal" kewangan untuk hari hujan, jika tidak, anda tidak pernah tahu, tiba-tiba pekerjaan baru tidak akan memenuhi jangkaan. Sekurang-kurangnya, pendekatan ini tidak akan mendorong anda ke dalam situasi kehidupan yang sukar sekiranya ada yang salah ...

*

Baiklah, pada ini saya menyelesaikan "manual" saya. Sekiranya anda mempunyai penambahan pada topik atau kritikan, mereka dialu-alukan (komen terbuka).

Semua yang terbaik!