Php trở lại là gì

Có nên học PHP? . TypeScript + Phản ứng. Azure DevOps Link bài viết gốc

Dịch. Thu Trang

PHP là gì?

PHP là viết tắt của PHP Hypertext Preprocessor, là một ngôn ngữ lập trình ổn định ra đời từ năm 1995. Đây là một ngôn ngữ phía máy chủ [ngôn ngữ phía máy chủ] cung cấp tới 80% của một trang web. Điều đó có nghĩa là tới 80% phần phụ trợ của tất cả các trang web được lập trình bằng PHP. Vì là ngôn ngữ phía máy chủ [hay còn gọi là ngôn ngữ phụ trợ], bạn cần kết nối với máy chủ web để học ngôn ngữ này. Điều này khác với HTML, CSS và JavaScript khi bạn có thể chạy trực tiếp trong trình duyệt của mình. Đối với PHP, bạn cần kết nối với máy chủ để chạy mã của mình

Một khi bạn đã hiểu về cách tạo khung một trang web bằng HTML và một số kiểu cú pháp cơ bản trong CSS, bạn hoàn toàn có thể bắt đầu học PHP. Khi mới bắt đầu, bạn sẽ học cách nhúng mã PHP vào HTML và cách PHP hoạt động với HTML

Vì sao nên học PHP?

Có hai lý do chính cho câu hỏi vì sao PHP lại là một ngôn ngữ lập trình tốt cho học tập. Thứ nhất, PHP dễ học kể cả đối với người mới bắt đầu. Thứ hai là, hiện tại như cầu với các nhà phát triển PHP khá cao. Có nhiều cơ hội việc làm cho các nhà phát triển PHP, kể cả ở các công ty ổn định hay các công việc tự do

Nhu cầu về PHP

Nếu bạn biết về PHP, hiện tại có một số công việc toàn thời gian và tự do dành cho bạn. PHP được sử dụng bởi các doanh nghiệp, trường đại học, chủ doanh nghiệp nhỏ và blog của người viết. Như đã đề cập ở trên, PHP hiện cung cấp tới 80% trang web và tất cả các mã phía máy chủ cần được duy trì

Nếu bạn yêu thích lối sống tự do linh hoạt và không phải làm việc 8-10 tiếng mỗi ngày tại văn phòng, bạn có thể bắt đầu sự nghiệp freelancer bằng cách tùy chỉnh các trang web WordPress và Drupal cho cá nhân, người viết blog . Nhu cầu đối với những công việc thế này khá lớn và bạn có thể tìm thấy tại một số trang tuyển dụng như Upwork, Fivver và Craigslist,…

PHP là sự lựa chọn hợp lý cho người học lập trình lần đầu

Nếu bạn chưa có kinh nghiệm về các ngôn ngữ lập trình trước đây thì PHP là ngôn ngữ lý tưởng để bắt đầu học. Bạn cần cài đặt và thiết lập máy chủ web riêng, tuy nhiên các khóa học phù hợp về PHP có thể giúp bạn làm điều đó

PHP có một cộng đồng các nhà phát triển web lớn mạnh

PHP là một ngôn ngữ rất ổn định. Với một khóa học phù hợp, người mới bắt đầu sẽ không gặp vấn đề gì khi học những kiến ​​thức cơ bản về lập trình PHP. Cộng đồng toàn cầu dành cho các nhà phát triển PHP rất mạnh mẽ và rộng rãi, vì vậy có rất nhiều hỗ trợ cho ngôn ngữ này. Nó phổ biến đến mức nếu bạn gặp phải một thể thức mà bạn đang gặp khó khăn trong việc giải quyết, rất có thể một nhà phát triển web khác cũng gặp vấn đề tương tự và đã viết về nó. Đây là một sự cân nhắc quan trọng khi bạn bắt đầu. Làm việc với một ngôn ngữ lập trình ngôn ngữ phổ biến có nghĩa là bạn sẽ tìm thấy câu trả lời cho các vấn đề mình gặp phải. Ngoài ra, một Cẩm nang PHP là một thứ tuyệt vời để tìm kiếm câu trả lời khi bạn gặp phải những thử thách khó khăn.
Khi học PHP, bạn sẽ hiểu về cách thức hoạt động của trang web trong phần phụ trợ. Sẽ rất hữu ích nếu hiểu được các phần khác nhau của một trang web hoạt động thế nào, và PHP sẽ cung cấp những kiến ​​thức đó cho bạn. Ngoài ra, một kỹ năng mà bạn có thể học cùng PHP là MySQL. Đây là một cơ sở dữ liệu cực kỳ phổ biến. Luôn luôn có nhu cầu tuyển dụng đối với các nhà phát triển biết cách viết các truy vấn SQL thích hợp để truy xuất thông tin từ cơ sở dữ liệu.

Học PHP ở đâu?

Một khóa học trực tuyến tốt nhất có thể tìm thấy là khóa PHP cho người mới bắt đầu của Edwin Diaz trên nền tảng Udemy. Khóa học kéo dài 36 giờ, bắt đầu với những điều chỉnh cơ bản về PHP và tiến tới thiết lập cơ sở dữ liệu SQL và xây dựng một hệ thống quản lý nội dung tùy chỉnh

Ngoài ra, bạn có thể tham khảo khóa học PHP Laravel tại TechMaster, tham khảo thông tin tại đây. Lộ trình Web PHP Fullstack

Phạm vi của một biến là bối cảnh trong đó nó được xác định. Đối với hầu hết các biến PHP chỉ có một phạm vi duy nhất. Phạm vi duy nhất này cũng bao gồm các tệp được yêu cầu và bao gồm. Ví dụ

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
2

Ở đây, biến $a sẽ có sẵn trong b được bao gồm. tập lệnh inc. Tuy nhiên, trong các chức năng do người dùng xác định, phạm vi chức năng cục bộ được giới thiệu. Theo mặc định, bất kỳ biến nào được sử dụng bên trong hàm đều được giới hạn trong phạm vi hàm cục bộ. Ví dụ

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
3

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
4

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
5

Tập lệnh này sẽ không tạo ra bất kỳ đầu ra nào vì câu lệnh echo đề cập đến phiên bản cục bộ của biến $a và nó chưa được gán giá trị trong phạm vi này. Bạn có thể nhận thấy rằng ngôn ngữ này hơi khác một chút so với ngôn ngữ C ở chỗ các biến toàn cục trong C tự động có sẵn cho các hàm trừ khi bị ghi đè cụ thể bởi một định nghĩa cục bộ. Điều này có thể gây ra một số vấn đề trong đó mọi người có thể vô tình thay đổi một biến toàn cầu. Trong PHP các biến toàn cục phải được khai báo toàn cục bên trong một hàm nếu chúng sẽ được sử dụng trong hàm đó

Từ khóa
Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
6

Đầu tiên, một ví dụ sử dụng của

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
6

Ví dụ #1 Sử dụng

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
6

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
9

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
0

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
1

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
2

Đoạn script trên sẽ xuất ra

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
3. Bằng cách khai báo $a và $b toàn cầu trong hàm, tất cả các tham chiếu đến một trong hai biến sẽ tham chiếu đến phiên bản toàn cầu. Không có giới hạn về số lượng biến toàn cục có thể được thao tác bởi một hàm

Cách thứ hai để truy cập các biến từ phạm vi toàn cục là sử dụng mảng đặc biệt $GLOBALS do PHP định nghĩa. Ví dụ trước có thể được viết lại thành

Ví dụ #2 Sử dụng $GLOBALS thay vì toàn cục

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
9

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
5

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
2

Mảng $GLOBALS là một mảng kết hợp với tên của biến toàn cục là khóa và nội dung của biến đó là giá trị của phần tử mảng. Lưu ý cách $GLOBALS tồn tại trong bất kỳ phạm vi nào, điều này là do $GLOBALS là một siêu toàn cầu. Đây là một ví dụ chứng minh sức mạnh của siêu toàn cầu

Ví dụ #3 Ví dụ minh họa siêu toàn cầu và phạm vi

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
7

Ghi chú

Sử dụng từ khóa

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
6 bên ngoài chức năng không phải là lỗi. Nó có thể được sử dụng nếu tệp được bao gồm từ bên trong một chức năng

Sử dụng biến
Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
9

Một tính năng quan trọng khác của phạm vi biến là biến tĩnh. Một biến tĩnh chỉ tồn tại trong phạm vi chức năng cục bộ, nhưng nó không mất giá trị khi thực thi chương trình rời khỏi phạm vi này. Xem xét ví dụ sau

Ví dụ #4 Ví dụ chứng minh sự cần thiết của các biến tĩnh

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
20

Hàm này khá vô dụng vì mỗi khi nó được gọi, nó đặt $a thành

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
21 và in ra
Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
21. $a++ làm tăng biến không có mục đích gì vì ngay sau khi hàm thoát, biến $a sẽ biến mất. Để tạo một hàm đếm hữu ích mà không mất dấu vết của số đếm hiện tại, biến $a được khai báo là tĩnh

Ví dụ #5 Ví dụ sử dụng các biến tĩnh

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
23

Bây giờ, $a chỉ được khởi tạo trong lần gọi hàm đầu tiên và mỗi khi hàm

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
24 được gọi, nó sẽ in giá trị của $a và tăng giá trị đó

Các biến tĩnh cũng cung cấp một cách để xử lý các hàm đệ quy. Hàm đệ quy là hàm gọi chính nó. Phải cẩn thận khi viết một hàm đệ quy vì có thể làm cho nó lặp lại vô thời hạn. Bạn phải chắc chắn rằng bạn có một cách thích hợp để chấm dứt đệ quy. Hàm đơn giản sau đếm đệ quy đến 10, sử dụng biến tĩnh $count để biết khi nào nên dừng

Ví dụ #6 Biến tĩnh với hàm đệ quy

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
25

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
26

Biến tĩnh có thể được gán giá trị là kết quả của biểu thức hằng, nhưng biểu thức động, chẳng hạn như lời gọi hàm, sẽ gây ra lỗi phân tích cú pháp

Ví dụ #7 Khai báo biến tĩnh

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
27

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
28

Kể từ PHP 8. 1. 0, khi một phương thức sử dụng các biến tĩnh được kế thừa [nhưng không bị ghi đè], phương thức được kế thừa giờ đây sẽ chia sẻ các biến tĩnh với phương thức gốc. Điều này có nghĩa là các biến tĩnh trong các phương thức giờ đây hoạt động giống như các thuộc tính tĩnh

Ví dụ #8 Cách sử dụng Biến tĩnh trong Phương thức kế thừa

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
29

Ghi chú

Khai báo tĩnh được giải quyết trong thời gian biên dịch

Tham chiếu với biến
Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
6 và
Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
9

PHP triển khai công cụ sửa đổi tĩnh và toàn cầu cho các biến theo tham chiếu. Ví dụ: một biến toàn cục thực được nhập bên trong phạm vi hàm với câu lệnh

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
6 thực sự tạo tham chiếu đến biến toàn cục. Điều này có thể dẫn đến hành vi không mong muốn mà ví dụ sau giải quyết

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
33

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
34

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
35

Ví dụ trên sẽ xuất ra

NULL
object[stdClass]#1 [0] {
}

Một hành vi tương tự áp dụng cho câu lệnh

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
9. Tài liệu tham khảo không được lưu trữ tĩnh

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
37

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
38

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
39

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
40

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
41

Ví dụ trên sẽ xuất ra

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}

Ví dụ này chứng minh rằng khi gán một tham chiếu cho một biến tĩnh, nó sẽ không được ghi nhớ khi bạn gọi hàm

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object[stdClass]#3 [1] {
  ["property"]=>
  int[1]
}
42 lần thứ hai

Chủ Đề