# Các hàm thông dụng có sẵn trong PHP

Bạn đã biết qua hàm (function) là cái gì trong PHP rồi, và bạn có biết rằng khi lập trình trong PHP, chúng ta đa phần là sử dụng các hàm của nó để xây dựng ứng dụng của mình. Hiện nay trong ngôn ngữ PHP có sẵn khoảng hơn 1000 hàm khác nhau, chưa kể bạn còn có các hàm có sẵn của WordPress hoặc có thể tự tạo hàm cho riêng mình.

Trong bài viết này, mình sẽ liệt kê cho bạn một số hàm có sẵn thường dùng nhất trong PHP để bạn có thể thực hành và nhớ nó, sau này chắc chắn sẽ có nhiều cơ hội dùng đến.

### CÁC HÀM XỬ LÝ CHUỖI

Các hàm trong danh sách này là những hàm sẽ có chức năng thao tác, xử lý trên các dữ liệu kiểu chuỗi.

#### [echo()](https://php.net/manual/en/function.echo.php)

Hàm này quá quen thuộc với chúng ta rồi, nó được dùng để in một dữ liệu chuỗi nào đó ra màn hình.

```php
<?php
    echo 'I love You!';
?>
```

#### [md5()](https://php.net/manual/en/function.md5.php)

Hàm này sẽ tự động chuyển đổi một chuỗi nào đó sang dạng mã hoá MD5.

```php
<?php
    $password = '123456';
    echo md5( $password );
?>
```

#### [str\_split()](https://php.net/manual/en/function.str-split.php)

Hàm này được sử dụng để cắt các ký tự trong một chuỗi và chuyển nó thành dạng mảng.

```php
<?php
    print_r (str_split('123456789'));
?>
```

#### [str\_word\_count()](https://php.net/manual/en/function.str-word-count.php)

Nếu bạn muốn đếm có bao nhiêu từ trong một chuỗi thì dùng hàm này.

```php
<?php
    $string = "Rose are red. Violet are blue.";
    echo str_word_count( $string );
?>
```

Kết quả sẽ trả về là 6.

#### [strlen()](https://php.net/manual/en/function.strlen.php)

Nếu bạn muốn đếm độ dài của một chuỗi, nghĩa là nó có bao nhiêu ký tự bao gồm các ký tự khoảng trắng và ký tự đặc biệt thì dùng hàm strlen() này.

```php
<?php
    $string = "Rose are red. Violet are blue.";
    echo strlen( $string );
?>
```

#### [substr()](https://php.net/manual/en/function.substr.php)

Hàm này cũng rất được thường xuyên sử dụng như là hỗ trợ để tách một phần trong một chuỗi. Bạn có thể chỉ định nó tách dựa theo điểm neo bắt đầu hoặc kết thúc của một chuỗi.

Trước tiên mình có ví dụ như sau để tách chữ `youtube.com`.

```php
<?php
    $url = 'https://www.youtube.com/watch?v=SJ4vbzpAJkk';
    echo substr($url, 12, -20);
    // Kết quả trả về là 'youtube.com'
?>
```

Trong đó, `$url` là biến chữa chuỗi cần tách nhé, `12` là vị trí bắt đầu tách và `-20` là vị trí kết thúc cần tách. Trước tiên bạn phải hiểu, `12` nghĩa là ký tự thứ 12 trở đi vì đoạn bắt đầu `https://www.` là 12 ký tự, `-20` nghĩa là điểm kết thúc của chuỗi cần tách, sử dụng số nguyên âm là nó sẽ đếm ngược chuỗi của mình từ phải qua trái, tức là đoạn `/watch?v=AN_-0PIVD-Q` là 20 ký tự.

Bạn cũng có thể chỉ tách ký tự ở điểm bắt đầu mà không cần khai báo điểm kết thúc như thế này.

```php
<?php
    $url = 'https://www.youtube.com/watch?v=SJ4vbzpAJkk';
    echo substr($url, 12);
    // Kết quả trả về là 'youtube.com/watch?v=SJ4vbzpAJkk'
?>
<?php
    $url = 'https://www.youtube.com/watch?v=SJ4vbzpAJkk';
    echo substr($url, -11);
    // Kết quả trả về là 'SJ4vbzpAJkk'
?>
```

#### [str\_replace()](https://php.net/manual/en/function.str-replace.php)

Một trong những hàm xử lý chuỗi rất có ích nữa đó là str\_replace(), nó có thể giúp bạn tìm một từ khoá nào đó và thay thế thành từ khoá của bạn, nó có thể làm việc trong một chuỗi thông thường hoặc một chuỗi trong mảng. Dưới đây là ví dụ mình sử dụng nó trong mảng.

```php
<?php
  $string = array(
    'PHP is fun',
    'WordPress is useful',
    'CSS is art',
    'Javascript is excellent'
  );
  $search = array(
    'fun',
    'useful',
    'art',
    'excellent',
  );
  $replace = array(
    'good',
    'powerful',
    'beautiful',
    'attractive'
  );
  $output = str_replace( $search, $replace, $string );
  echo '<pre>';
    print_r( $output );
  echo '</pre>';
?>
```

Kết quả sẽ trả về là:

```
Array
(
    [0] => PHP is good
    [1] => WordPress is powerful
    [2] => CSS is beautiful
    [3] => Javascript is attractive
)
```

Hoặc đơn giản hơn thì có:

```php
<?php
    echo str_replace( 'Black', 'Red', 'Black is Good' );
?>
```

### CÁC HÀM HỮU ÍCH KHÁC

#### [date()](https://php.net/manual/en/function.date.php)

Nếu bạn cần hiển thị ngày tháng hiện tại hay ở thời gian nào đó thì có thể sử dụng hàm date(), nó sẽ hiển thị ra với định dạng ngày tháng theo quy tắc bạn đã thiết lập.

Ví dụ:

```php
<?php
    echo date(‘d/m/Y’);
?>
```

#### [phpinfo()](https://php.net/manual/en/function.phpinfo.php)

Hàm này tuy không được sử dụng công khai nhưng khi nào bạn muốn xem chi tiết các thông số cấu hình PHP trên máy chủ của bạn thì sẽ sử dụng hàm này để xem. Nó sẽ cho bạn tất cả các thông tin về PHP như phiên bản, các modules đang bật, đường dẫn php.ini, thông số của từng cấu hình,…

```php
<?php
    phpinfo();
?>
```

Kết quả:

![](https://1969157529-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3yN44WNdRdbv3lgY8XRE%2Fuploads%2FuMsiVOJLnTcK06SXeEmd%2Fimage.png?alt=media\&token=f0b67ba3-adfa-4176-8007-35cab9cd4599)

### CÁC HẰNG MAGIC (MAGIC CONSTANTS)

Mặc dù cái này không phải là hàm nhưng mình xin đưa vào đây luôn cho bạn biết trước vì mình không muốn tạo thêm ra nhiều bài mới không cần thiết. Trong PHP có hỗ trợ một số [Magic Constrant](https://php.net/manual/en/language.constants.predefined.php) để bạn sử dụng nhằm lấy thông tin một cái gì đó trong ngữ cảnh hiện tại (Ví dụ lấy đường dẫn tập tin hiện tại). Bao gồm:

* `__FILE__` – Tên tập tin hiện tại.
* `__DIR__` – Đường dẫn thư mục hiện tại.
* `__FUNCTIONS__` – Hàm hiện tại.
* `__CLASS__` – Lớp hiện tại.
* `__METHOD__ -` Phương thức hiện tại.
* `__NAMESPACE__` – Namespace hiện tại.

Ví dụ:

```php
<?php
    echo __DIR__;
    // Kết quả  '/home/admin/domains/data.jks.vn/public_html/wp-content/themes/api-theme'
?>
```

hoặc

```php
<?php
    function test_magic() {
        return __FUNCTION__;
    }
    echo test_magic();
?>
```
