Tối ưu code PHP – Thiết lập thói quen viết PHP

18 bài đăng
12.06.2017 / 01:21
hanhphucao
Bài đăng: 2469
Admin
Admin là người tận tâm và luôn hành xử đúng mực.

Khi học và làm việc với PHP lần đầu, đa phần lập trình viên đều có xu hướng học lướt các kiến thức căn bản để tập trung vào phần viết ứng dụng. Cũng chính vì lý do đó mà phần lớn những điểm nhấn quan trọng trong PHP thường là sẽ bị bỏ qua.

Bài viết này, với mong muốn tổng hợp và đưa đến cái nhìn bao quát, đầy đủ trong lập trình PHP. Qua đó giúp các bạn có cái nhìn đầy đủ và hiểu sâu các vấn đề hơn.

[IMAGE]

1- Khi echo thay thế print:

Echo luôn luôn hoạt động nhanh hơn print, vì echo không có return gì cả, trong khi print thì luôn return true hay false (0 | 1)

PHP
  1. print('Hello, phonho.net');
  2. echo "Hello, phonho.net";

2- Nháy đơn luôn nhanh hơn nháy kép:

Xét ví dụ sau:

PHP
  1. $abc = 'bbb';
  2. $a = 'abcdef'.$abc;
  3. $b = "abcdef $abc";

Vì nháy kép luôn kiểm tra nội dung bên trong có cái nào là biến hay không. Trong khi nháy đơn thì không kiểm tra, vì nội dung bên trong nháy đơn chắc chắn là chuỗi.

3- Vòng lặp for trong PHP

Mỗi khi thực hiện vòng lặp for() để duyệt một phần tử mảng. Ta thường sử dụng hàm count để đếm số lượng của các phần tử trong mảng. Điều này sẽ làm cho ứng dụng của chúng ta trở nên chậm chạp. Vì lý do mỗi lần thực hiện việc kiểm tra điều kiền thì ta lại phải gọi lại hàm count để đếm số phần tử trong mảng.

Cụ thể:

PHP
  1. for($i=0; $i<=count($a); $i++){
  2. // Hành Động...
  3. }

Cải tiến:

PHP
  1. $b=count($a);
  2. for($i=0; $i<=$b; $i++){
  3. // Hành Động...
  4. }

4- Đừng back folder khi gọi lại file:

Thói quen back folder của một số lập trình viên cần phải xem xét lại vì: khi back folder hệ thống phải cần thời gian tìm kiếm và định hình đường dẫn. Điều đó sẽ làm cho ứng dụng tốn tài nguyên trong việc thực hiện thao tác này.

Cụ thể:

PHP
  1. include '../../path/a.php';

Cải tiến:

PHP
  1. include BASE . '/path/a.php';

BASE là 1 hằng được định nghĩa từ đầu để chỉ ra đường dẫn vật lý tới thư mục của ứng dụng.

5- Nối chuỗi bằng dấu “,” sẽ nhanh hơn dấu “.”

Thói quen khi lập trình PHP thường là nối chuỗi và biến bằng dấu “.”. Nhưng thực tế là khi nối chuỗi bằng dấu “,” thì tốc độ xử lý của ứng dụng sẽ được cải tiến và nhanh hơn rất nhiều. Tác giả của bài viết này cũng đã thực hiện ứng dụng để chứng minh điều đó. http://www.electrictoolbox.com ... tion/

PHP
  1. echo $str1 . $str2;
  2. echo $str1 , $str2; // Nhanh hơn

6- Luôn dùng dấu nháy để truy cập khóa của 1 mảng:

Thực tế là các lập trình viên hay bỏ qua điều này vì sự rườm rà của cách viết. Nhưng nếu không có nó thì ứng dụng sẽ lại chậm đi một chút. Vì khi đó nó sẽ xem khóa đó là 1 hằng, và tìm xem có hằng nào định nghĩa hay không? Như vậy sẽ làm code chạy chậm đi do phải mất thời gian xử lý tác vụ biên dịch hằng.

Ví dụ:

PHP
  1. $a = $b['abc']; // nhanh hơn
  2. $a = $b[abc];

Trên đây là những lưu ý tuy nhỏ nhưng có tác động đến ứng dụng PHP của bạn cụ thể về phía tốc độ xử lí. Hy vọng với việc nắm vững các quy tắc nhỏ này các bạn có thể tối ưu code PHP của mình hơn.

Chúc các bạn thành công!

Nguồn: qhonline.info

Đã chỉnh sửa. hanhphucao (12.06.2017 / 01:23)
12.06.2017 / 09:16
Jichan
Bài đăng: 1028
Member
Mệt cứ nói, đừng cố....

Nhưng print return như thế nào? cho em ví dụ được không?

12.06.2017 / 10:45
hanhphucao
Bài đăng: 2469
Admin
Admin là người tận tâm và luôn hành xử đúng mực.
Jichan đã viết

Nhưng print return như thế nào? cho em ví dụ được không?

PHP
  1. if(print('Return: ')) echo 1;
  2. else echo 0;
12.06.2017 / 19:39
tnit2510
Bài đăng: 966
Member

H mới biết đến cái vụ nối bằng dấu "," trước h toàn "."

12.06.2017 / 20:21
Jichan
Bài đăng: 1028
Member
Mệt cứ nói, đừng cố....

nhưng require(BASE.'/link/hj.php'); thì bị lỗi....

12.06.2017 / 20:31
PMTpro
Bài đăng: 464
Member
khóc chỉ làm rơi lệ!

require '/a/b.php';

cho khoẻ....

12.06.2017 / 22:25
Jichan
Bài đăng: 1028
Member
Mệt cứ nói, đừng cố....
PMTpro đã viết

require '/a/b.php';

cho khoẻ....

Bị lỗi đó :3

30.07.2017 / 16:28
tienlee
Bài đăng: 1
Member

chán thế các giời

30.07.2017 / 16:48
PMTpro
Bài đăng: 464
Member
khóc chỉ làm rơi lệ!

BASE éo dùng dc nữa :haiz:

define('PMTpro', $_SERVER['DOCUMENT_ROOT']);

include PMTpro.'/sys/a.php';

30.07.2017 / 17:22
hanhphucao
Bài đăng: 2469
Admin
Admin là người tận tâm và luôn hành xử đúng mực.
PMTpro đã viết

BASE éo dùng dc nữa :haiz:

define('PMTpro', $_SERVER['DOCUMENT_ROOT']);

include PMTpro.'/sys/a.php';

Dùng bình thường :)