Tân Hồng IT https://tanhongit.net Siêu Chia Sẻ Kiến Thức, Công Nghệ, Phần Mềm, Thủ Thuật, Tiện Ích Máy Tính Thu, 06 Feb 2020 16:21:00 +0000 en-US hourly 1 https://wordpress.org/?v=5.3.2 https://tanhongit.net/wp-content/uploads/2019/04/logo-TanHongIT-one-75x75.png Tân Hồng IT https://tanhongit.net 32 32 Bài 13: Phương thức GET và POST trong PHP https://tanhongit.net/learn-php/bai-13-phuong-thuc-get-va-post-trong-php/ https://tanhongit.net/learn-php/bai-13-phuong-thuc-get-va-post-trong-php/#respond Thu, 06 Feb 2020 09:06:37 +0000 https://tanhongit.net/?p=7740 Tiếp tục series học PHP căn bản, ở bài 13 này chúng ta sẽ học về 2 phương thức truyền tải dữ liệu thông dụng trong mô hình Client-Server đó là Get và Post. Các bạn có thể xem lại khái niệm của Client-Server.  Như chúng ta đã biết thì đa số các trang web […]

The post Bài 13: Phương thức GET và POST trong PHP appeared first on Tân Hồng IT.

]]>
Tiếp tục series học PHP căn bản, ở bài 13 này chúng ta sẽ học về 2 phương thức truyền tải dữ liệu thông dụng trong mô hình Client-Server đó là GetPost. Các bạn có thể xem lại khái niệm của Client-Server. 

phuong thuc get post trong php
Phương Thức Get và Post Trong PHP

Như chúng ta đã biết thì đa số các trang web hiện nay đang hoạt động theo mô hình client-server. Việc truyền gửi dữ liệu giữa clientserver rất thường xuyên diễn ra và vô cùng quan trọng.

Khi các bạn đăng nhập hay đăng ký tài khoản, hoặc là các bạn đăng comment, gửi thông báo đến quản trị web thì dữ liệu sẽ được gửi từ client lên Server, vậy làm sao để Server nhận được những thông tin của bạn? Server sẽ nhận được thông qua hai phương thức POST và GET.

Phương thức GET trong PHP

Khi người dùng phía client sử dụng phương thức GET gửi dữ liệu lên server thông qua các tham số (parameter) trên thanh địa chỉ URL của Browser. Các tham số trên URL bắt đầu bằng dấu chấm hỏi ( ? ) và được ngăn cách với nhau bởi dấu và ( & ). Server sẽ phân tích tất cả những thông tin đằng sau dấu hỏi (?) chính là phần dữ liệu mà Client gửi lên.

Ví dụ: ta có URL https://tanhongit.net/?p=7740&preview=true

Khi truy cập, từ Server sẽ hiểu giá trị p = 7740 và giá trị preview = true.

Lưu ý 1: khi muốn truyền nhiều cặp giá trị lên Server chúng ta sẽ sử dụng dấu và ( & ), và vị trí các cặp giá trị không quan trọng. Nghĩa là từ ví dụ trên, giá trị preview nằm trước giá trị p cũng được.

Đó là ví dụ về phần Client truy cập từ thanh địa chỉ URL. Chúng ta bây giờ sẽ chuyên sang các vấn đề trong code PHP.

Trong code khi các dữ liệu mà Client gửi lên bằng phương thức GET đều được lưu trong một biến toàn cục mà PHP tự tạo ra đó là biến $_GET. ( $_GET là một biến toàn cục lưu trữ dưới dạng mảng bất tuần tự.)

<?php
$_GET = [
    'name' => 'TanHongIT',
    'website' => 'tanhongit.net'
];
?>  //biến $_GET là một mảng chứa nhiều phần tử

Lưu ý về phương thức GET trong PHP

  • Phương thức GET được giới hạn gửi tối đa chỉ 1024 ký tự.
  • Không bao giờ sử dụng phương thức GET nếu gửi password hoặc thông tin nhay cảm lên Server.
  • GET không thể gửi dữ liệu nhị phân, ví dụ như hình ảnh hoặc các loại tài liệu lên Server.
  • Dữ liệu gửi bởi phương thức GET có thể được truy cập bằng cách sử dụng biến môi trường QUERY_STRING.
  • PHP cung cấp mảng liên hợp $_GET để truy cập tất cả các thông tin đã được gửi bởi phương thức GET.

Ví dụ thực hành

Ví dụ 1: Bạn khởi tạo 1 file demo.php nằm trong thư mục WWW của WampServer hoặc tạo trong thư mục htdocs nếu bạn dùng Xampp, sau đó bạn dán đoạn code bên dưới vào.

<?php
$_GET = [
    'title' => 'TanHongIT',
    'website' => 'tanhongit.net'
];
?> 
<!DOCTYPE html>
<html lang="en">
<body>
    <form action="<?php $_PHP_SELF ?>" method="GET">
        <?php foreach ($_GET as $key => $value){  
            echo $key . ' - ' . $value . '<br>';
        } ?>
        <input type="submit">
    </form>
</body>
</html>

khi truy cập vào http://localhost/demo.php?title=tanhongit&website=tanhongit.net hoặc http://localhost//demo.php thì kết quả đều ra như sau:

title - TanHongIT
website - tanhongit.net

Ở ví dụ trên mình sử dụng phương thức GET ngay trong 1 file duy nhất, mình đã sử dụng vòng lặp Foreach để lấy toàn bộ key và value có trong biến $_GET là một mảng có nhiều phần tử.

GET còn có thể sử dụng để truyền dữ liệu từ file này sang file khác. hãy làm tiếp ví dụ 2.

Ví dụ 2: Tạo 2 file, 1 file có tên get_demo.php và một file demo.html

Đầu tiên, ở trong file demo.html ta sẽ tạo 1 form để lấy dữ liệu nhập vào từ bàn phím và gửi lên server.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div class="container">
        <form action="get_demo.php" method="GET"> <!--thêm thuộc tính action chuyển hướng đến file get_demo.php -->
            <div class="form-group">
                <label for="">Title</label>
                <input type="text" class="form-control" id="" placeholder="Nhập vào title..." name="title"> <!--tạo một trường có tên là title để truyền dữ liệu lên file get_demo.php-->
            </div>

            <div class="form-group">
                <label for="">Website</label>
                <input type="text" class="form-control" id="" placeholder="Nhập vào url website..." name="web"> <!--tạo một trường có tên là web để truyền dữ liệu lên file get_demo.php-->
            </div>

            <button type="submit" class="btn btn-primary">Submit</button>
        </form>
    </div>
</body>
</html>

Ở file demo.html mình có tạo 2 trường nhập liệu trong form có tên là title web để truyền dữ liệu nhập từ bàn phím vào file get_demo.php

Tiếp theo ta viết code để phía Server xuất ra màn hình sau khi nó đã nhận dữ liệu được nhập vào từ file demo.html thông qua file get_demo.php

<?php
echo 'Kết quả nhập liệu của bạn là: <br>';
echo 'Title: ' . $_GET['title'] . '<br>';
echo 'Website: ' . $_GET['web'];

Hãy test thử bằng cách chạy file demo.html lên theo đường link http://localhost/demo.html sau đó nhập vào các trường dữ liệu và nhấn vào button Submit. Lập tức Server sẽ tự động chuyển link sang file get_demo.php và xuất ra thông tin bạn đã nhập liệu.

demo get php url method get php

Lưu ý 2: Vì đây là phương thức GET nên khi truyền dữ liệu bạn sẽ có 2 cách truyền, 1 là truyền dữ liệu từ form sau đó gửi lên Server, 2 là ta có thể truyền tham số trực tiếp thông qua paramter trên địa chỉ URL.

Ví dụ: http://localhost/get_demo.php?title=hello&web=chaomoinguoi.com

Kết quả nhận được sau khi Enter sẽ như hình dưới:

Lưu ý 3: Dùng phương thức GET thì dữ liệu luôn được gửi một cách tường minh, chúng ta có thể thấy mọi thông tin trên URL và có thể chỉnh sửa trực tiếp cho nên nó không bảo mật tốt.
Vì thế khi muốn tạo dữ liệu nào đó ta không nên sử dụng phương thức GET mà phải dùng POST vì GET luôn để lộ thông tin trên địa chỉ URL nên rất dễ bị hack đánh cắp dữ liệu.

Phương thức POST trong PHP

Phương thức POST sẽ trái ngược với phương thức GET về tính bảo mật cũng như tốc độ.

Về phương thức GET, chúng ta có thể xem thông tin trên thanh địa chỉ URL, dữ liệu được gửi đi bằng GET sẽ thông qua các paramter trên URL. POST thì ngược lại, nó không gửi dữ liệu đi bằng paramter trên URL mà thông qua HTTP header, vì vậy việc bảo mật phụ thuộc vào giao thức HTTP mà website đó đang sử dụng.

Parameters được truyền trong request body nên có thể truyền dữ liệu lớn, hạn chế tùy thuộc vào cấu hình của Server. Không cache và bookmark được cũng như không được lưu lại trong browser history. POST không có bất kì hạn chế nào về kích thước dữ liệu sẽ gửi, có thể gửi dữ liệu nhị phân, hình ảnh.

Nội dung dữ liệu được gửi đi bằng phương thức POST sẽ luôn bị ẩn đi và chúng ta không thể thấy được.

Phương thức Post trong mô hình Client-Server

Các bạn hãy tìm hiểu và làm ví dụ bên dưới để hiểu cách phương thức POST truyền dữ liệu lên Server như thế nào nhé!

Phía Client gửi lên

Với phương thức GET, dữ liệu sẽ được thấy trên URL, nhưng phương thức POST thì hoàn toàn ngược lại, POST sẽ phải gửi dữ liệu qua form HTML và các giá trị sẽ được định nghĩa trong các thẻ input gồm các kiểu (textbox, radio, checkbox, password, textarea, hidden) và được nhận dang thông qua tên (name) của các thẻ input đó.

Bạn hãy tạo file demo.html trong thư mục WWW của WampServer hoặc tạo trong thư mục htdocs nếu bạn dùng Xampp và chèn đoạn code bên dưới vào.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div class="container">
        <form action="post_demo.php" method="POST"> <!--thêm thuộc tính action chuyển hướng đến file post_demo.php và sử dụng phương thức method = post-->
            <div class="form-group">
                <label for="">Title</label>
                <input type="text" class="form-control" id="" placeholder="Nhập vào title..." name="title"> <!--tạo một trường có tên (name) là title để truyền dữ liệu lên file post_demo.php-->
            </div>
            <div class="form-group">
                <label for="">Website</label>
                <input type="text" class="form-control" id="" placeholder="Nhập vào url website..." name="web"> <!--tạo một trường có tên (name) là web để truyền dữ liệu lên file post_demo.php-->
            </div>
            <button type="submit" class="btn btn-primary">Submit</button>
        </form>
    </div>
</body>
</html>

Phần code trên mục đích dùng để nhập liệu từ phía Client để gửi lên Server. Giờ chúng ta sang phần Server.

Phía Server nhận dữ liệu và trả về

Tất cả các dữ liệu gửi bằng phương thức POST đều được lưu trong một biến toàn cục $_POST do PHP tự tạo ra, vì thế từ bây giờ bạn chỉ cần thao tác lấy hoặc gửi dữ liệu thông qua biến $_POST này là được.

Ở file demo.html mình có tạo 2 trường nhập liệu trong form có tên là title web để truyền dữ liệu nhập từ bàn phím vào file post_demo.php. Tiếp theo ta sẽ code trên file post_demo.php để lấy dữ liệu và xuất ra màn hình.

<?php
echo 'Kết quả nhập liệu của bạn là: <br>';
echo 'Title: ' . $_POST['title'] . '<br>';
echo 'Website: ' . $_POST['web'];

Hãy test thử bằng cách chạy file demo.html lên theo đường link http://localhost/demo.html sau đó nhập vào các trường dữ liệu và nhấn vào button Submit. Lập tức Server sẽ tự động chuyển link sang file post_demo.php và xuất ra thông tin bạn đã nhập liệu.

demo post php

Nhưng có một điều khác biệt ở đây bạn cần quan tâm đó là khi sử dụng GET, đường dẫn URL sẽ tiết lộ bất kỳ thông tin mà bạn đã nhập liệu, còn khi đã dùng POST thì bị ẩn.

Điều này chứng minh POST sẽ có tính bảo mật hơn GETPOST sẽ phù hợp với các chức năng về tạo dữ liệu, đăng ký, đăng nhập,…

Những lưu ý cần biết trong phương thức POST trong PHP

  • Phương thức POST không có bất kì hạn chế nào về kích thước dữ liệu sẽ gửi.
  • Phương thức POST có thể sử dụng để gửi ASCII cũng như dữ liệu nhị phân.
  • Dữ liệu gửi bởi phương thức POST thông qua HTTP header, vì vậy việc bảo mật phụ thuộc vào giao thức HTTP. Bằng việc sử dụng Secure HTTP, bạn có thể chắc chắn rằng thông tin của mình là an toàn.
  • PHP cung cấp mảng liên hợp $_POST để truy cập tất cả các thông tin được gửi bằng phương thức POST.

Kiểm tra isset với GET và POST trong PHP

Trước khi lấy một dữ liệu nào đó từ client bạn phải kiểm tra nó đã tồn tại không rồi mới lấy.Vì nếu không kiểm tra trước khi lấy, phía client chưa cung cấp đầy đủ dữ liệu mà server lại nhận thì sẽ có lỗi ngay. Vì thế ở những trường hợp mà ta không chắc chắn một biến luôn tồn tại hoặc một trường dữ liệu được nhập đầy đủ thì hãy kiểm tra nó trước khi gửi request.

Để kiểm tra ta sẽ dùng hàm isset(). Hàm isset() trong PHP có chức năng kiểm tra xem biến có tồn tại hay không. Nó sẽ trả về TRUE nếu biến đó có tồn tại và ngược lại FALSE nếu biến đó không tồn tại. Hàm isset() sẽ dùng cho cả 2 phương thức GET và POST.

Cú pháp: isset($bien);

Trong đó: $bien là biến mà bạn muốn kiểm tra sự tồn tại.

Từ ví dụ về phần POST trong PHP ở trên, nếu bạn trực tiếp truy cập vào http://localhost/post_demo.php mà chưa nhập đầy đủ thông tin ở http://localhost/demo.html thì sẽ xuất hiện lỗi ngay.

Vậy từ ví dụ trên ta chỉ cần thêm vào file file post_demo.php như sau:

<?php
echo 'Kết quả nhập liệu của bạn là: <br>';
if (isset($_POST['title']) && isset($_POST['web'])) {
    echo 'Title: ' . $_POST['title'] . '<br>';
    echo 'Website: ' . $_POST['web'];
}

Bây giờ bạn hãy thử truy cập lại http://localhost/post_demo.php , nếu chưa đươc nhập đủ dữ liệu ở http://localhost/demo.html thì nó sẽ không hiện gì cả, còn nhập đầy đủ các trường dữ liệu thì nó mới hiện lên cho ta xem.

Kết luận: Hàm isset() thật sự rất hữu ích đối với chúng ta trong việc ràng buộc dữ liệu nên các bạn hãy thường xuyên sử dụng để hiểu rõ và áp dụng dễ dàng hơn sau này nhé!

So sánh giống và khác nhau giữa GET và POST

GET và POST hầu như chẳng có gì giống nhau ngoài tác dụng là truyền tải dữ liệu lên Server.

Cho nên mình sẽ nói về những đặc điểm khác nhau của 2 phương thức này nhé!

  1. Giới hạn dữ liệu: GET giới hạn gửi tối đa chỉ 1024 ký tự. Còn POST không có bất kì hạn chế nào về kích thước dữ liệu sẽ gửi.
  2. Khả năng: Phương thức POST có thể sử dụng để gửi ASCII cũng như dữ liệu nhị phân, các loại tệp, hình ảnh còn GET thì không.
  3. Tốc độ: GET nhanh hơn rất nhiều so với POST về quá trình thực thi – vì dữ liệu gửi đi luôn được web browser lưu cached lại. Khi dùng phương thức POST thì server luôn thực thi và trả kết quả cho client, còn dùng GET thì web browser cached sẽ kiểm tra có kết quả tương ứng đó trong bộ nhớ cached chưa, nếu có thì trả về ngay mà không cần đưa tới server.
  4. Bảo mật: Phương thức POST bảo mật hơn GET vì dữ liệu được gửi ngầm, không xuất hiện trên URL, mắt thường không nhìn thấy được và dữ liệu cũng không được lưu lại. Trong khi đó với GET thì dữ liệu gửi đi được tường minh bạn có thể hiển thị lại được các dữ liệu này trên URL.

Link tham khảo: https://www.diffen.com/difference/GET-vs-POST-HTTP-Requests

Khi nào nên dùng GET và POST trong PHP

Cả 2 phương thức đều có những ưu và nhược điểm khác nhau, vậy khi nào chúng ta nên dùng GET và khi nào nên dùng POST.

Phương thức GET có tốc độ thực thi nhanh như độ bảo mật lại rất kém nên GET chỉ nên dùng cho các công việc lấy dữ liệu từ server về client, như vậy quá trình truy xuất sẽ nhanh hơn.

Đối với POST sẽ có độ bảo mật cao nên phù hợp với các công việc tạo dữ liệu, upload, truyền tải thông tin lên server, những công việc mang tính bảo mật cao.

Ví dụ:

  • Khi upload hình ảnh lên web thì ta sẽ dùng POST, còn khi muốn tải ảnh từ Web server về ta sẽ dùng GET.
  • Khi đăng ký, đăng nhập hoặc comment vào một website ta sẽ dùng POST, còn khi lấy tin bài viết từ web ra thì ta dùng GET.
  • Khi request sử dụng câu lệnh select thì dùng GET, khi request có sử dụng lệnh insert update, delete thì nên dùng POST.
  • Ngoài ra khi cần xử lý các thông tin nhạy cảm ví dụ như email, password thì bạn phải sử dụng POST.

Kết thúc

Qua bài viết trên mình đã nếu ra những nội dung liên quan đến 2 phương thức method truyền tải dữ liệu thông dụng trong PHP là GET và POST. Các bạn cần phải hiểu rõ những tính chất của mỗi phương thức này và khi nào nên dùng nó tùy vào từng trường hợp cụ thể.

Nhưng có một điều lưu ý rằng những nội dung, dữ liệu quan trọng hoặc cần truyền tải một loại thông tin gì đó lên server thì ta phải dùng POST để tăng tính bảo mật cho Website nhé!

Xem thêm:

Nếu các bạn cảm thấy Website TanHongIT.Net thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!
CHÚC CÁC BẠN THÀNH CÔNG

The post Bài 13: Phương thức GET và POST trong PHP appeared first on Tân Hồng IT.

]]>
https://tanhongit.net/learn-php/bai-13-phuong-thuc-get-va-post-trong-php/feed/ 0
Bài 12: Chuỗi (String) Và Các Hàm Xử Lý Chuỗi Trong PHP https://tanhongit.net/learn-php/bai-12-chuoi-string-va-cac-ham-xu-ly-chuoi-trong-php/ https://tanhongit.net/learn-php/bai-12-chuoi-string-va-cac-ham-xu-ly-chuoi-trong-php/#respond Sat, 25 Jan 2020 08:51:35 +0000 https://tanhongit.net/?p=7725 Tiếp tục series học PHP căn bản, bài này mình sẽ giới thiệu về chuỗi (String) trong PHP và tổng hợp một số hàm xử lý chuỗi nhé! Về chuỗi mình trước đây đã từng có nói sơ qua ở bài 3. các kiểu dữ liệu trong PHP rồi, nhưng ở bài này mình sẽ […]

The post Bài 12: Chuỗi (String) Và Các Hàm Xử Lý Chuỗi Trong PHP appeared first on Tân Hồng IT.

]]>
Tiếp tục series học PHP căn bản, bài này mình sẽ giới thiệu về chuỗi (String) trong PHP và tổng hợp một số hàm xử lý chuỗi nhé! Về chuỗi mình trước đây đã từng có nói sơ qua ở bài 3. các kiểu dữ liệu trong PHP rồi, nhưng ở bài này mình sẽ giới thiệu lại luôn nhé!

chuoi string va cac ham xu ly trong php
Chuỗi và Các hàm xử lý chuỗi trong PHP

Chuỗi trong PHP là gì?

Kiểu chuỗi trong PHP nói đơn giản nó là 1 dãy các ký tự, nó bao gồm string(chuỗi) và kiểu char(ký tự). Để khai báo chuỗi cho 1 biến, các bạn chỉ cần gán 1 chuỗi vào biến đó.

Chuỗi phải được bao quanh bằng dấu nháy đơn  hoặc dấu nháy kép . Chuỗi sử dụng nháy đơn là một chuỗi tĩnh, còn chuỗi sử dụng nháy kép là một chuỗi động, thay đổi tùy theo giá trị của biến.

Không có giới hạn về độ dài của chuỗi, có thể dài tùy ý nếu bộ nhớ cho phép.

Ví dụ:

$string_1 = "Chào mừng đến với tanhongit.net";
$string_2 = "abc 123 hello";

Các chuỗi được giới hạn bởi các dấu nháy kép được PHP xử lý bằng 2 cách sau đây:

  • 1. Các chuỗi kí tự bắt đầu với (\) được thay thế với một kí tự đặc biệt
  • 2. Các biến (bắt đầu với $) được thay thế bằng biểu diễn chuỗi của giá trị của nó.

Các quy tắc thay thế:

  • \n được thay thế bằng ký tự newline (dòng mới)
  • \r được thay thế bởi ký tự carriage-return, được hiểu là đưa con trỏ về đầu dòng nhưng không xuống dòng.
  • \t được thay thế bởi ký tự tab
  • $ được thay thế bằng một dấu $
  • \” được thay thế bằng một dấu nháy kép “
  • \\ được thay thế bằng một dấu nháy đơn \

Các hàm xử lý chuỗi trong PHP

strlen($string)

Hàm này có tác dụng đếm xem chuỗi $string có bao nhiêu ký tự và xuất ra màn hình độ dài của chuỗi.

<?php
      $string = 'tanhongit.net';
      echo strlen($string);
      //kết quả : 13
?>

strpos($string, $keyword)

Hàm này có tác dụng kiểm tra xem đoạn ký tự $keyword có tồn tại trong chuỗi $string hay không và xuất ra màn hình vị trí bắt đầu tồn tại của $keyword đó trong chuỗi.

<?php
      $string = 'tanhongit.net';
      echo strpos($string,'it');
      //kết quả trả về vị trí bắt đầu của chuỗi cần tìm: 7
?>

explode($separator, $string, $limit)

Hàm này sẽ chuyển một chuỗi $string thành một mảng gồm các phần tử là các ký tự trong mảng. Điều kiện tách mảng sẽ là chuỗi ký tự $separator, và giới hạn phần tử sẽ là $limit.

<?php
      $string = 'tanhongit.net welcome';
      var_dump(explode('t',$string)); //nếu không thêm vào giới hạn tách phần tử $limit thì chuỗi sẽ được tách tối đa phần tử
      /*array (size=4)
      0 => string '' (length=0)
      1 => string 'anhongi' (length=7)
      2 => string '.ne' (length=3)
      3 => string ' welcome' (length=8) */

      var_dump(explode('t',$string,2)); //có thêm giới hạn tách chuỗi chỉ gồm 2 phần tử
      /*array (size=2)
      0 => string '' (length=0)
      1 => string 'anhongit.net welcome' (length=20) */
?>

implode($separator, $array)

Hàm này có tác dụng nối tất cả các phần tử của mảng $array thành chuỗi với mỗi phần tử cách nhau bằng chuỗi $separator.

<?php
      $array = array('tanhongit.net','welcome','123456');
      var_dump(implode('-', $array)); 
      //kết quả: 'tanhongit.net-welcome-123456'

      var_dump(implode(' ', $array)); 
      //kết quả : 'tanhongit.net welcome 123456'
?>

str_word_count($string)

Hàm này sẽ đếm tổng số lượng trả về số từ trong chuỗi $string.

<?php
      $string = 'tanhongit.net welcome';
      var_dump(str_word_count($string));
      /*Kết quả: 3 */
?>

substr($string,$start,$length)

Hàm này có tác dụng cắt ra một chuỗi con nằm trong chuỗi $string bắt đầu từ ký tự có vị trí thứ $start và chiều dài chuỗi con là $length

<?php
      $string = 'tanhongit.net welcome';
      echo substr($string,0,9) . '<br>'; // output: tanhongit
      echo substr($string,-4) . '<br>'; // output: come
      echo substr($string,-4,3) . '<br>'; // output: com
      echo substr($string,5) . '<br>'; // output: ngit.net welcome
?>

Nếu $startsố dương thì vị trí bắt đầu sẽ tính từ trái sang phải trong chuỗi. Ngược lại, nếu $startsố âm thì vị trí bắt đầu sẽ được tính từ phải sang trái của chuỗi.

strstr($string, $start_string)

Tác dụng của hàm này sẽ tách một chuỗi con từ chuỗi $string được tính bắt đầu từ $start_string cho đến hết chuỗi cha.

<?php
      $string = 'tanhongit.net welcome';
      echo strstr($string,'net') . '<br>'; // output: net welcome
      echo strstr($string,'n') . '<br>'; // output: nhongit.net welcome
      echo strstr($string,'.') . '<br>'; // output: .net welcome
?>

strtolower($string)

Hàm có tác dụng chuyển chuỗi $string sang dạng chữ thường.

<?php
      $string = 'TANHONGIT.NET';
      echo strtolower($string); //output: tanhongit.net
?>

strtoupper($string)

Hàm có tác dụng chuyển đổi chuỗi $string sang dạng in hoa.

<?php
      $string = 'tanhongit.net';
      echo strtoupper($string); //output: TANHONGIT.NET
?>

strip_tags($string, $allow)

Hàm này sẽ loại bỏ toàn bộ các thẻ html có trong chuỗi $string, trừ các thẻ được cho phép $allow.

<?php
      $string = '<p><b><i>tanhongit.net</i></b></p>';
      echo strip_tags($string); //output: tanhongit.net
      echo strip_tags($string, '<b>'); //output : <b>tanhongit.net</b>
      echo strip_tags($string, '<i>'); //output : <i>tanhongit.net</i>
?>

 

Sẽ còn cập nhật…

Kết thúc

Bài viết này mình đã liệt kê một số hàm thường được sử dụng để xử lý chuỗi trong PHP, Nếu các bạn muốn xem thêm hãy truy cập link này để tham khảo nhé!

Vậy là trong lộ trình học php căn bản thì tới đây mình đã liệt kê hết các kiến thức về chuỗi giúp các bạn học tập. Cho nên sang bài tiếp theo chúng ta sẽ qua một số phương thức bắt buộc phải biết trong PHP nhé!

Xem thêm:

Nếu các bạn cảm thấy Website TanHongIT.Net thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!
CHÚC CÁC BẠN THÀNH CÔNG

The post Bài 12: Chuỗi (String) Và Các Hàm Xử Lý Chuỗi Trong PHP appeared first on Tân Hồng IT.

]]>
https://tanhongit.net/learn-php/bai-12-chuoi-string-va-cac-ham-xu-ly-chuoi-trong-php/feed/ 0
Bài 11: Các hàm xử lý mảng (Array) trong PHP https://tanhongit.net/learn-php/bai-11-cac-ham-xu-ly-mang-array-trong-php/ https://tanhongit.net/learn-php/bai-11-cac-ham-xu-ly-mang-array-trong-php/#respond Sat, 18 Jan 2020 23:12:37 +0000 https://tanhongit.net/?p=7707 Khái niệm và những vấn đề liền quan về các loại mảng có trong PHP mình đã giới thiệu ở bài 10 : Mảng trong PHP. Tiếp tục series học PHP căn bản, bài này mình sẽ liệt kê các hàm dùng để xử lý mảng hay dùng trong PHP để các bạn tiện tra […]

The post Bài 11: Các hàm xử lý mảng (Array) trong PHP appeared first on Tân Hồng IT.

]]>
Khái niệm và những vấn đề liền quan về các loại mảng có trong PHP mình đã giới thiệu ở bài 10 : Mảng trong PHP. Tiếp tục series học PHP căn bản, bài này mình sẽ liệt kê các hàm dùng để xử lý mảng hay dùng trong PHP để các bạn tiện tra cứu cũng như học tập nhé!

cac ham xu ly mang php
Các hàm xử lý mảng trong PHP

is_array($array)

Hàm có tác dụng kiểm tra xem một biến có phải mảng hay không. Trả về true nếu là mảng và ngược lại sẽ trả về false.

<?php
   $bien1 = array("tanhongit.net", "php căn bản");
   $bien2 = '';
   var_dump(is_array($bien1)); // Kết quả trả về true 
   var_dump(is_array($bien2)); // Kết quả trả về false
?>

in_array($value,$array)

Hàm có tác dụng kiểm tra xem mảng $array có tồn tại giá trị $value hay không. Nếu có sẽ trả về true và ngược lại trả về false.

<?php
   $bien1 = array("tanhongit.net", "php căn bản");
   var_dump(in_array("tanhongit.net",$bien1)); // Kết quả trả về true 
   var_dump(in_array("hello",$bien1)); // Kết quả trả về false
?>

array_values($array)

Chuyển mảng $array sang dạng mảng chỉ mục.

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456'
    );
    var_dump(array_values($array));

    /* Kêt quả của mảng là array (size=2)
        0 => string 'tanhongit.net' (length=13)
        1 => string '123456' (length=6)
    ) */
?>

array_count_values($array)

Đếm số lần xuất hiện của các phần tử giống nhau trong mảng $array và trả về một mảng kết quả với các value là các giá trị đếm đó.

<?php
    $array = array('tanhongit.net', 'hello', '123456', 'hello');
    var_dump(array_count_values($array));
    /*array (size=3)
    'tanhongit.net' => int 1
    'hello' => int 2  //'hello xuất hiện 2 lần'
    123456 => int 1 */
?>

array_keys($array)

Hàm này có tác dụng trả về một dạng mảng chỉ mục mà trong mảng đó sẽ có phần tử là key của mảng ban đầu.

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456'
    );
    var_dump(array_keys($array));

    /* kết quả : array (size=2)
  0 => string 'username' (length=8)
  1 => string 'password' (length=8)
     */
?>

array_change_key_case($array, $case)

Tác dụng của hàm này là chuyển tất cả các chỉ mục key trong mảng $array sang chữ hoa nếu $case = 1 và sang chữ thường nếu $case = 0.

Ta có thể dùng hằng số CASE_UPPER thay cho số 1 và CASE_LOWER thay cho số 0.

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456'
    );
    $array = array_change_key_case($array,1);
    var_dump($array);

    /* kết quả : array (size=2)
  'USERNAME' => string 'tanhongit.net' (length=13)
  'PASSWORD' => string '123456' (length=6)
     */
?>

array_key_exists($key,$array)

Kiểm tra xem khoá $keytồn tại trong mảng $array hay không. Nếu có sẽ trả về true và trả về false nếu không có.

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456'
    );
    var_dump(array_key_exists("username",$array)); //kết quả var_ dump sẽ trả về true
    var_dump(array_key_exists("hello",$array)); //kết quả var_ dump sẽ trả về false
?>

array_pop($array)

Tác dụng của hàm này sẽ cắt phần tử cuối cùng ra khỏi mảng.

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456'
    );
    var_dump(array_pop($array)); //phần tử cuối cùng sẽ bị cắt mất khỏi mảng
    //kết quả output: '123456' 

    var_dump($array);
    //kết quả màn hình:  array (size=1)
    //'username' => string 'tanhongit.net' (length=13)
?>

Ta có thể xuất ra phần tử đã bị cắt từ hàm array_pop($array) bằng cách gán giá trị của nó vào một biến và xuất biến đó ra. Nhuw sau:

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456'
    );
    $pop = array_pop($array); //gán giá trị đã bị cắt cuối mảng vào 1 biến
    var_dump($array); // xuất mảng
    echo $pop; // xuất giá trị đã bị cắt khỏi mảng bởi hàm array_pop
?>

array_push($array,$value1,$value2…)

Hàm này có tác dụng thêm một hoặc nhiều phần tử vào cuối mảng với các các giá trị $value1, $value2 được truyền vào.

Nếu ta var_dump hàm array_push này thì kết quả màn hình sẽ trả về tổng cộng số lượng phần tử có trong mảng sau khi thêm.

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456'
    );
    var_dump(array_push($array,"hello")); 
    //kết quả output: 3
    var_dump($array);
    /*kết quả: array (size=3)
    'username' => string 'tanhongit.net' (length=13)
    'password' => string '123456' (length=6)
    0 => string 'hello' (length=5) */
?>

array_shift($array)

Trái ngược với hàm array_pop, hàm array_shift sẽ cắt phần tử đầu tiên trong mảng $array ra khỏi mảng. Ta có thể xuất giá trị đã bị cắt khỏi mảng đó bằng cách gán giá trị của array_shift($array) vào 1 biến và xuất nó ra.

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456'
    );
    $shift = array_shift($array); //gán giá trị của phần tử đầu tiên trong mảng đã bị cắt vào 1 biến
    var_dump($array);
    /*kết quả màn hình:  array (size=1)
    'password' => string '123456' (length=6)*/
    echo $shift; //giá trị của phần tử đầu tiên trong mảng đã bị cắt đi

array_unshift($array,$value1,$value2…)

Trái ngược với array_push, hàm array_unshift sẽ thêm một hoặc nhiều phần tử vào đầu mảng với các các giá trị $value1, $value2 được truyền vào.

Nếu ta var_dump hàm array_push này thì kết quả màn hình sẽ trả về tổng cộng số lượng phần tử có trong mảng sau khi thêm.

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456'
    );
    var_dump(array_unshift($array,"hello")); 
    //kết quả output: 3
    var_dump($array);
    /*kết quả: array (size=3)
  0 => string 'hello' (length=5)
  'username' => string 'tanhongit.net' (length=13)
  'password' => string '123456' (length=6) */
?>

array_combine($array_keys, $array_values)

Tác dụng của hàm là trộn 2 mảng $array_keys$array_values thành một mảng kết hợp. Trong đó, $array_keys là danh sách keys, $array_value là danh sách value tương ứng với key. Với điều kiện là 2 mảng này phải bằng nhau.

<?php
    $array_keys = array('username','password');
    $array_values = array('tanhongit.net','123456');
    
    var_dump(array_combine($array_keys,$array_values)); 
    /*output: array (size=2)
    'username' => string 'tanhongit.net' (length=13)
    'password' => string '123456' (length=6) */
?>

array_merge($array,$array…)

Cao cấp hơn hàm array_combine (chỉ có tác dụng gộp 2 mảng thành 1), hàm array_merge này có tác dụng gộp 2 hoặc nhiều mảng hơn nữa thành 1 mảng duy nhất

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456',
    );
    $array1 = array(1, 2, 3);
    $array2 = array(
      1 => 'hello',
      'name' => 'Hồng'
    );
    var_dump(array_merge($array,$array1,$array2)); 
    /*kết quả: array (size=7)
    'username' => string 'tanhongit.net' (length=13)
    'password' => string '123456' (length=6)
    0 => int 1
    1 => int 2
    2 => int 3
    3 => string 'hello' (length=5)
    'name' => string 'Hồng' (length=4) */
?>

array_rand($array, $number)

Hàm có tác dụng lấy ra key ngẫu nhiên trong mảng với $number là số lượng muốn lấy. Mình sẽ lấy ví dụ tiếp tục từ phần array_merge trên:

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456',
    );
    $array1 = array(1, 2, 3);
    $array2 = array(
      1 => 'hello',
      'name' => 'Hồng'
    );
    echo array_rand(array_merge($array,$array1,$array2));  //lấy 1 phần tử ngẫu nhiên trong mảng kết hợp
    //kêt quả lệnh echo: password

    var_dump(array_rand(array_merge($array,$array1,$array2), 3)); //lấy 3 phần tử ngẫu nhiên trong mảng kết hợp
    /*kết quả: array (size=3)
    0 => string 'password' (length=8)
    1 => int 2
    2 => int 3 */
?>

array_unique($array)

Hàm giúp loại bỏ giá trị trùng nếu có trong mảng $array.

<?php
    $array = array('tanhongit.net', 'hello', '123456', 'hello');
    var_dump(array_unique($array));
    /*array (size=3)
    0 => string 'tanhongit.net' (length=13)
    1 => string 'hello' (length=5)
    2 => string '123456' (length=6) */
?>

array_flip($array)

Hàm này có tác dụng chuyển đổi key của mảng thành value và ngược lại.

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456'
    );
    var_dump(array_flip($array)); 
    /*kết quả: array (size=2)
  'tanhongit.net' => string 'username' (length=8)
  123456 => string 'password' (length=8) */
?>

array_reverse($array)

Hàm có tác dụng đảo ngược lại vị trí sắp xếp của tất cả phần tử có trong mảng.

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456',
    );
    var_dump(array_reverse($array)); 
    /*kết quả: array (size=2)
  'password' => string '123456' (length=6)
  'username' => string 'tanhongit.net' (length=13) */
?>

array_search($keyword, $array)

Hàm có tác dụng tìm kiếm giá trị của mảng và trả về key của phần tử đó nếu có. Trong đó $keyword là giá trị truyền vào, $array là mảng cần tìm.

<?php
    $array = array(
    'username' => 'tanhongit.net',
    'password' => '123456',
    );
    var_dump(array_search('tanhongit.net',$array)); 
    /*kết quả: string 'username' (length=8) */
?>

array_slice($array,$begin,$number)

Hàm có tác dụng lấy ra số lượng các phần tử được truyền vào thông qua $number và bắt đầu lấy ra từ $begin trong mảng.

<?php
      $array = array(
      'username' => 'tanhongit.net',
      'password' => '123456',
      );
      var_dump(array_slice($array, 0)); //lấy ra các phần tử bắt đầu từ chỉ mục $key = 0
      /*kết quả: array (size=2)
      'username' => string 'tanhongit.net' (length=13)
      'password' => string '123456' (length=6) */
      var_dump(array_slice($array, 0 , 1)); //lấy ra 1 phần tử bắt đầu từ chỉ mục $key = 0
      /*Kết quả: array (size=1)
      'username' => string 'tanhongit.net' (length=13) */
      var_dump(array_slice($array, 1 , 1)); //lấy ra 1 phần tử bắt đầu từ chỉ mục $key = 1
      /*Kết quả: array (size=1)
      'password' => string '123456' (length=6) */ 
?>

Sẽ còn cập nhật…

Kết thúc

Bài viết này mình đã liệt kê một số hàm thường được sử dụng để xử lý mảng trong PHP, Nếu các bạn muốn xem thêm hãy truy cập link này để tham khảo nhé!

Vậy là trong lộ trình học php căn bản thì tới đây mình đã liệt kê hết các kiến thức về mảng giúp các bạn học tập. Cho nên sang bài tiếp theo chúng ta sẽ qua chuỗi trong PHP và các vấn đề xoay quanh chuỗi nhé!

Xem thêm:

Nếu các bạn cảm thấy Website TanHongIT.Net thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!
CHÚC CÁC BẠN THÀNH CÔNG

The post Bài 11: Các hàm xử lý mảng (Array) trong PHP appeared first on Tân Hồng IT.

]]>
https://tanhongit.net/learn-php/bai-11-cac-ham-xu-ly-mang-array-trong-php/feed/ 0
Bài 10: Mảng (Array) Trong PHP https://tanhongit.net/learn-php/bai-10-mang-array-trong-php/ https://tanhongit.net/learn-php/bai-10-mang-array-trong-php/#respond Wed, 15 Jan 2020 23:23:57 +0000 https://tanhongit.net/?p=7684 Đây là bài viết thứ 9 trong series học PHP căn bản, trong bài này mình sẽ chỉ giới thiệu về mảng (Array) trong PHP và các kiến thức liên quan đến mảng mà các bạn cần nắm vững. Trước đây mình đã từng giới thiệu và nói qua về mảng ở bài 3: các […]

The post Bài 10: Mảng (Array) Trong PHP appeared first on Tân Hồng IT.

]]>
Đây là bài viết thứ 9 trong series học PHP căn bản, trong bài này mình sẽ chỉ giới thiệu về mảng (Array) trong PHP và các kiến thức liên quan đến mảng mà các bạn cần nắm vững.

Trước đây mình đã từng giới thiệu và nói qua về mảng ở bài 3: các kiểu dữ liệu trong PHP. Nhưng qua bài này mình sẽ trình bày lại tất cả nhé!

Cũng như bao ngôn ngữ lập trình khác. PHP cũng tồn tại một loại dữ liệu được gọi là mảng. Mảng Array là một loại biến đặc biệt, trong nó giữ nhiều giá trị. Mỗi giá trị trong mảng được gọi là phần tử của mảng.

mang array trong php
Mảng (Array) Trong PHP

Một mảng là một cấu trúc dữ liệu mà lưu giữ danh sách các phần tử có cùng kiểu dữ liệu và nó là một trong các kiểu dữ liệu trong php có độ phức tạp tính toán cao. Riêng với PHP thì các phần tử của mảng có thể không cùng kiểu dữ liệu, và các phần tử của mảng thường được truy xuất thông qua các chỉ mục(vị trí) của nó nằm trong mảng.

Cú pháp tạo một mảng

Để tạo mảng chúng ta sử dụng hàm array() trong PHP (Từ PHP 5.4 trở lên bạn chỉ cần viết giá trị trong cặp dấu [ ] cũng được)

Note: Các bạn dùng hàm var_dump($mang); để in ra các phần tử của mạng để test trong quá trình học nhé. Hàm này có thể sử dụng được tất cả các kiểu dữ liệu trong php. (Hàm var_dump chỉ dùng để test).

//cách tạo mảng 1
<?php
    $names=array("Tan","Binh","Minh");
    var_dump($names);
?>
//cách tạo mảng 2
<?php 
$names=array(
0 => 'Tan',
1 => 'Binh',
2 => 'Minh'
); 
var_dump($names); 
?>
//cách tạo mảng 3 
<?php 
$names=array(); 
$names[0] = 'Tan';
$names[1] = 'Binh';
$names[2] = 'Minh';
var_dump($names);
?>
//cách tạo mảng 4 
<?php 
$names=array(); 
$names[] = 'Tan'; 
$names[] = 'Binh'; 
$names[] = 'Minh'; 
var_dump($names); 
?>

Có 3 loại mảng trong PHP

  1.  Mảng indexed – Mảng được lập chỉ mục
  2. Mảng associative – Mảng liên hợp
  3. Mảng Multidimensional – Mảng chứa một hoặc nhiều mảng

Chúng ta sẽ cùng tìm hiểu theo thứ tự từng loại mảng trên.

Loại 1. Indexed Arrays – Mảng được lập chỉ mục

Các mảng này có thể lưu trữ số, chuỗi và bất kỳ đối tượng nào nhưng chỉ mục của chúng sẽ được biểu diễn bằng dạng số. Một biến mảng dạng này chỉ số sẽ gán một cách tự động, theo chỉ mục mảng mặc định bắt đầu từ số không khi phần tử đầu tiên được thêm vào, cứ thế phần tử thứ 2 thêm vào mảng sẽ có chỉ số là 1.

Ví dụ minh họa cách tạo và truy cập mảng số được lập chỉ mục trong PHP.

<?php
    /*Ví dụ 1: xuất danh sách các tên có trong mảng bằng cách sử dụng vòng lặp */
    $names = array( "Nam", "Mai", "Trúc", "Linh", "Phong");
    
    foreach( $names as $value ) // sử dụng vòng lặp foreacch để duyệt phần tử trong mảng
    {
    echo "Tên: $value <br />";
    }
    var_dump($names); //xuất mảng
    
    /*Ví dụ 2: xuất lần lượt các giá trị có trong mảng */
    $numbers[0] = "one";
    $numbers[1] = 2;
    $numbers[2] = "three";
    $numbers[3] = 4;
    $numbers[4] = "five";
    
    var_export($numbers);
?>

sau khi chạy lên, kết quả của lệnh var_dump($names); trên màn hình như sau:

array (size=5)
  0 => string 'Nam' (length=3)
  1 => string 'Mai' (length=3)
  2 => string 'Trúc' (length=5)
  3 => string 'Linh' (length=4)
  4 => string 'Phong' (length=5)

Như vậy phần tử có chỉ số 0 thì giá trị là 'Nam', chỉ số 1 giá trị là ‘Mai’ … chỉ số này dùng với ký hiệu Array_Name[indexed] để truy xuất ( đọc hoặc gán) phần tử mảng:

Ví dụ về truy xuất Array_Name[indexed]

Từ ví dụ bên trên ta sẽ truy xuất 1 phần tử trong mảng ra như sau:

<?php
    /*Ví dụ 1: xuất danh sách các tên có trong mảng bằng cách sử dụng vòng lặp */
    $names = array( "Nam", "Mai", "Trúc", "Linh", "Phong");
    
    foreach( $names as $value ) // sử dụng vòng lặp foreacch để duyệt phần tử trong mảng
    {
    echo "Tên: $value <br />";
    }
    var_dump($names);

    //truy xuất phần tử có chỉ mục là số 1 có trong mảng $names
    echo $names[1];

    //kết quả xuất ra màn hình sẽ là 'Mai'
?>

Thêm phần tử mới vào mảng

Bạn có thể thêm phần tử mới vào trong mảng bằng cách viết bên dưới:

$arrayName[indexed] = $giatri; 

// biến $giatri có thể là một biến có sẵn hoặc cũng có thể là một giá trị mới mà bạn muốn gán vào.
//phần tử mới nhất được thêm vào sẽ luôn nằm cuối mảng, dù cho giá trị index có là bao nhiêu đi chăng nữa

Ví dụ 1:

<?php
    /*Ví dụ 1: xuất danh sách các tên có trong mảng bằng cách sử dụng vòng lặp */
    $names = array( "Nam", "Mai", "Trúc", "Linh", "Phong");

    //thêm 2 phần tử mới vào mảng $names
    $names[7]=0;
    $names[6]=9;

    var_dump($names);
?>

Kết quả thấy được sẽ là:

array (size=7)
  0 => string 'Nam' (length=3)
  1 => string 'Mai' (length=3)
  2 => string 'Trúc' (length=5)
  3 => string 'Linh' (length=4)
  4 => string 'Phong' (length=5)
  7 => int 0
  6 => int 9

Bạn thấy mặc dù chỉ số 6 bé hơn chỉ số 7 nhưng khi biểu diễn trong mảng nó lại nằm dưới chỉ số 7, Bởi vì khi thêm phần tử mình đã cố ý thêm phần tử có chỉ số 7 trước cho nên nó sẽ được thêm vào mảng trước phần tử có chỉ số là 6.

Điều này sẽ tuân thủ quy tắc: phần tử mới nhất được thêm vào sẽ luôn nằm cuối mảng, dù cho giá trị index có là bao nhiêu đi chăng nữa


Có một cách thêm thứ 2 mà bạn cần biết đó là phương pháp thêm sau:

$arrayName[] = $giatri;

// biến $giatri có thể là một biến có sẵn hoặc cũng có thể là một giá trị mới mà bạn muốn gán vào.
// Phần tử này khi được thêm vào sẽ nằm phía sau phần tử cuối cùng của mảng. Khi đó chỉ số phần tử này sẽ bằng chỉ số lớn nhất của mảng cộng thêm 1
// nếu đây là phần tử đầu tiên của mảng thì chỉ số sẽ là 0

Ví dụ 2:

<?php
    /*Ví dụ 1: xuất danh sách các tên có trong mảng bằng cách sử dụng vòng lặp */
    $names = array( "Nam", "Mai", "Trúc", "Linh", "Phong");

    //thêm 2 phần tử mới vào mảng $names
    $names[7]=0;
    $names[6]=9;

    //thêm phần tử mới vào mảng $names theo cách 2
    $names[] = 100;
    $names[] = "hé nô";

    var_dump($names);
?>

Kết quả trên màn hình sẽ là:

array (size=9)
  0 => string 'Nam' (length=3)
  1 => string 'Mai' (length=3)
  2 => string 'Trúc' (length=5)
  3 => string 'Linh' (length=4)
  4 => string 'Phong' (length=5)
  7 => int 0
  6 => int 9
  8 => int 100
  9 => string 'hé nô' (length=7)

2 cách thêm phần tử vào mảng trên cách nào cũng đúng cả, tuỳ vào cách sử dụng của mỗi người và tuỳ vào trường hợp của bài toán mà ta sẽ phải lựa chọn cho phù hợp.


Tử 2 ví dụ trên, ta thấy chỉ số index không phải là thứ tự sắp xếp các phần tử trong mảng. Và chỉ số index không phải và không liên quan đến số lượng phần tử có trong mảng Mục đích của nó chỉ là lập chỉ mục cho các phần tử có trong mảng mà thôi. 

Loại 2. Associative Arrays– Mảng liên hợp

Các mảng liên hợp là khá giống với các mảng Indexed về tính năng, nhưng chúng khác nhau về chỉ mục. Chỉ mục của Associative Arrays sẽ ở dạng chuỗi(string) nhằm giúp bạn có thể thiết lập một liên kết mạnh giữa keyvalue.

<?php
    $numbers  =  [
        'one' => "số 1",
        'two' => "số 2",
        'three' => "số 3",
        'four' => "số 4"
    ];
    //dùng vòng lặp foreach để duyệt mảng
    foreach ($numbers as $key => $value) {
        echo "$key ($value)", PHP_EOL; // PHP_EOL tương tự như dấu cách (space)
    }

    // Kết quả màn hình: one (số 1) two (số 2) three (số 3) four (số 4)

    var_dump($numbers);
?>

Kết quả của var_dump($numbers); trên màn hình:

array (size=4)
  'one' => string 'số 1' (length=6)
  'two' => string 'số 2' (length=6)
  'three' => string 'số 3' (length=6)
  'four' => string 'số 4' (length=6)

Như vậy, từ ví dụ trên ta thấy chỉ mục của các phần tử bây giờ không còn là các số nguyên nữa mà là các chuỗi ký tự.

Trong vòng lặp foreach, khi xuất ra các $key (các chỉ mục) thì sẽ có giá trị tương ứng là các $value.

Và để lấy giá trị của phần tử bất kỳ trong mảng ta cũng không thể sử dụng theo cách echo $numbers[0] giống mảng indexed nữa, ta phải gọi đúng chỉ mục là các chuỗi ký tự giống như sau: echo $numbers[‘one’]. Như vậy mới có kết quả ra màn hình là ‘số 1’.

Loại 3. Multidimensional Arrays– Mảng đa chiều

Mảng đa chiều là mảng trong nó chứa một hay nhiều mảng khác. Tức là trong 1 mảng, mỗi phần tử của nó có thể sẽ là một mảng (các mảng con), và có thể mỗi phần tử của mảng con cũng sẽ là một mảng (các mảng cháu),..v.v..

Ví dụ: mảng 2 chiều xuất ra thông tin điểm môn học của các học sinh.

<?php
    $diem = [
        'Nguyễn Văn A' => [
            'Toán' => 8,
            'Lý' => 7,
            'Hóa'  => 9
        ],
        'Nguyên Văn B' => [
            'Toán' => 6,
            'Lý' => 5,
            'Hóa'  => 7
        ],
        'Nguyễn C' => [
            'Toán' => 4,
            'Lý' => 9,
            'Hóa'  => 7
        ],
    ];
    foreach ($diem as $ten => $diem_hoc_tap) {
        echo $ten . "<br>";
        foreach ($diem_hoc_tap as $tem_mon => $diem_cua_mon) {
            echo "__$tem_mon" . " - " . $diem_cua_mon . "<br>";
        }
        echo "<br>";
    }
?>

Kết quả:

Nguyễn Văn A
__Toán - 8
__Lý - 7
__Hóa - 9
Nguyên Văn B
__Toán - 6
__Lý - 5
__Hóa - 7

Nguyễn C
__Toán - 4
__Lý - 9
__Hóa - 7

Các xuất phần tử trong mảng đa chiều  bạn cần phải truyền đủ các chỉ mục thuộc các cấp có trong mảng.

Ở ví dụ trên là mảng 2 chiều, như vậy ta sẽ truyền cả 2 chỉ mục mới có thể xuất ra màn hình, nếu không sẽ báo lỗi.

echo $diem['Nguyễn Văn A']['Toán']; // kết quả : 8

Kết thúc

Vậy là qua bài trên mình đã giới thiệu cho các bạn về mảng cũng như nói rõ các loại mảng có trong PHP mà bạn cần nắm. Mảng là khái niệm mà bạn nên nắm vững để sau này đi vào phần lập trình PHP hướng đối tượng các bạn sẽ phải dùng rất nhiều.

Hàm, mảng và vòng lặp là 3 khái niệm bạn cần vững vàng để sau này áp dụng vào lập trình PHP có lết hợp với cấu trúc dữ liệu MySql cũng như lập trình hướng đối tượng. Nếu có thắc mắc hay có chỗ nào sai sót mong các bạn để lại comment bên dưới bài viết chúng mình cũng thảo luận nhé!

Ở bài viết tiếp theo của series học PHP căn bản mình sẽ nói về các hàm xử lý cho mảng để các bạn có thể áp dụng sau này. Hãy tiếp tục với series học PHP căn nản nha ❤

Xem thêm:

Nếu các bạn cảm thấy Website TanHongIT.Net thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!
CHÚC CÁC BẠN THÀNH CÔNG

The post Bài 10: Mảng (Array) Trong PHP appeared first on Tân Hồng IT.

]]>
https://tanhongit.net/learn-php/bai-10-mang-array-trong-php/feed/ 0
Share Code Đếm Ngược Chào Mừng Năm Mới 2020 Với Hiệu Ứng Tuyệt Đẹp https://tanhongit.net/share-code/share-code-dem-nguoc-chao-mung-nam-moi-2020-voi-hieu-ung-tuyet-dep/ https://tanhongit.net/share-code/share-code-dem-nguoc-chao-mung-nam-moi-2020-voi-hieu-ung-tuyet-dep/#respond Tue, 14 Jan 2020 13:47:15 +0000 https://tanhongit.net/?p=7677 Mừng Năm mới 2020 đang tới mình xin chia sẻ một món quà nhỏ đến cho tất cả các bạn, đó là bộ source code webCountdown Đếm Ngược Mừng Chào Năm Mới. Bộ source code này mình đã chỉnh sửa từ bộ source code CountDown cũ của năm 2019 mà trước đây mình đã từng chia […]

The post Share Code Đếm Ngược Chào Mừng Năm Mới 2020 Với Hiệu Ứng Tuyệt Đẹp appeared first on Tân Hồng IT.

]]>
Mừng Năm mới 2020 đang tới mình xin chia sẻ một món quà nhỏ đến cho tất cả các bạn, đó là bộ source code webCountdown Đếm Ngược Mừng Chào Năm Mới.

Bộ source code này mình đã chỉnh sửa từ bộ source code CountDown cũ của năm 2019 mà trước đây mình đã từng chia sẻ. Các bạn có thể xem lại tại đây: Source Code Chào Mừng Năm Mới Với Hiệu Ứng Tuyệt Đẹp 2019

code web nam moi 2020
Code đếm ngược mừng năm mới 2020

Bộ code này là một mẫu nguồn mở có những hiệu ứng rất đẹp mắt giúp các bạn cảm thấy hấp dẫn và tạo cảm hứng khi xem hơn.

Với hiệu ứng chạy chữ cùng hiệu ứng bắn pháo bông chắc chắn sẽ làm các bạn thấy hấp dẫn hơn rất nhiều. Ngoài ra Sourse này khi mở lên bạn còn có thể được xem các lời chúc mà bạn có thể tùy ý chỉnh sửa theo ý của bạn nữa.

Các bạn hãy tải về và chỉnh sửa lại theo ý thích của các bạn rồi up lên host chia sẻ cho mọi người cùng xem nhé!

Hoặc 1 số code web khác: https://tanhongit.net/category/share-code/

Download Source Code CountDown Happy New Year

Tải Source Code web chào mừng năm mới – Happy New Year tại đâyLink tải miễn phí

Hướng dẫn:

  1. Các bạn tải về rồi giải nén ra.
  2. Để chỉnh sửa theo ý của các bạn thì các bạn hãy chỉnh sửa ở file index.html nhé! (dùng trình chỉnh sửa notepad++, hoặc những trình chỉnh sửa code khác.)
  3. Thay đổi nội dung trong các file đó bao gồm tên bạn, những lời nhắn, trang web của bạn, hình ảnh của bạn và những thành phần khác trong code để web xuất hiện đúng theo ý thích của bạn…
  4. Khi đã chỉnh xong thì bạn hãy up lên host để chạy. (có thể dùng host free như buythost hay 000webhost,…).

Nếu có vấn đề hay thắc mắc gì hoặc bạn không biết cách chỉnh sửa thì hãy bình luận bên dưới để cùng trao đổi và giúp đỡ các bạn nhé!

Xem thêm: 

Nếu các bạn cảm thấy Website TanHongIT.Net thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!

CHÚC CÁC BẠN THÀNH CÔNG VÀ VUI VẺ

The post Share Code Đếm Ngược Chào Mừng Năm Mới 2020 Với Hiệu Ứng Tuyệt Đẹp appeared first on Tân Hồng IT.

]]>
https://tanhongit.net/share-code/share-code-dem-nguoc-chao-mung-nam-moi-2020-voi-hieu-ung-tuyet-dep/feed/ 0
Bài 9: Hàm (Function) Trong PHP https://tanhongit.net/learn-php/bai-9-ham-function-trong-php/ https://tanhongit.net/learn-php/bai-9-ham-function-trong-php/#respond Tue, 14 Jan 2020 08:53:06 +0000 https://tanhongit.net/?p=7645 Tiếp tục series học PHP căn bản thì trong bài học này mình sẽ giới thiệu cho các bạn về hàm (function) trong PHP là gì, cấu trúc của một hàm và cách sử dụng nó như thế nào nhé! Hàm là gì? Hàm (Hay còn gọi là function) là một hoặc nhiều đoạn code […]

The post Bài 9: Hàm (Function) Trong PHP appeared first on Tân Hồng IT.

]]>
Tiếp tục series học PHP căn bản thì trong bài học này mình sẽ giới thiệu cho các bạn về hàm (function) trong PHP là gì, cấu trúc của một hàm và cách sử dụng nó như thế nào nhé!

ham function trong php
Function trong PHP

Hàm là gì?

Hàm (Hay còn gọi là function) là một hoặc nhiều đoạn code được viết ra để thực thi một hoặc nhiều hành động mỗi khi gọi nó, hàm có khả năng gọi đi gọi lại để sử dụng nhiều lần trong chương trình.

Để giảm thời gian lặp lại 1 thao tác code nhiều lần, PHP đã hỗ trợ người lập trình việc tự định nghĩa cho mình những hàm có khả năng lặp lại nhiều lần trong website. Việc này cũng giúp cho người lập trình kiểm soát mã nguồn một cách mạch lạc. Đồng thời có thể tùy biến ở mọi trang mà không cần phải khởi tạo hay viết lại mã lệnh như HTML thuần.

Cấu trúc của một hàm

Hàm tự định nghĩa

<?php
function functionName() {
    //code được thực thi;
}
// Gọi function
functionName(); 
?>

Trong đó functionName là tên cùa hàm, cách đặt tên hàm cũng phải tuân thủ theo các ràng buộc tương tự như đặt tên biến.

Ví dụ: Xuất thứ tự chữ cái từ một tới 5 có sử dụng duyệt mảng.

<?php
    function xuatchucai(){
        $name= array("one", "two", "three", "four", "five");
        foreach ($name as $value){ 
            echo "$value <br>"; 
        }
    }
    //gọi hàm
    xuatchucai();
?>

Hàm tự định nghĩa với các tham số

Trong PHP chúng ta có thể khai báo hàm có tham số hoặc không có tham số. Các tham số đóng vai trò là các biến sử dụng bên trong hàm và chúng ta có thể truyền dữ liệu đầu cho các biến này khi gọi hàm.

<?php
function functionName($giatri1, $giatri2) {
    //code được thực thi;
}
?>

Trong đó, các biến $giatri1, $giatri2 là các tham số mà bạn muốn truyền vào. Các tham số này la các biến truyền vào thuộc một kiểu dữ liệu bất kỳ nào đó ( và Không giới hạn số lượng tham số truyền vào.)

Ví dụ:

<?php
    function output($string){
        echo "$string <br>";
    }
    //gọi hàm
    output("Chào Mừng");
    output("Đến với");
    output("Series Học PHP căn bản");
?>

Hàm tự định nghĩa với giá trị trả về

Hàm có thể trả về một giá trị khi được gọi. Để khai báo một hàm với giá trị trả về chúng ta sử dụng từ khoá return.

<?php
function functionName(có hoặc không có đối số) {
    //code được thực thi;
    return giatri;
}
?>

Lệnh return dùng để trả về cho hàm một giá trị. (Sau khi thực thi xong, hàm sẽ có một giá trị, lúc đó nó có thể được sử dụng giống như một biến)

Lưu ý: Trong một hàm, sau khi thực thi xong lệnh return thì hàm sẽ kết thúc (tức là những câu lệnh nằm phía sau lệnh return sẽ không được thực thi). Cho nên trong một hàm, lệnh return cần phải được đặt ở vị trí cuối cùng.

Ví dụ: tính tích của 2 số đơn giản.

<?php
    function tich($a, $b){
        $ketqua = $a * $b;
        return $ketqua;
    }
    //gọi hàm
    echo tich(15,20);
    //ket qua xuat ra man hinh se la 300
?>
Lưu ý: Khi đặt tên hàm, tên hàm có thể là một tổ hợp bất kỳ những chữ cái, con số và dấu gạch dưới, nhưng không được bắt đầu bằng số mà phải bắt đầu từ chữ cái và dấu gạch dưới.

Cách gọi hàm

Nếu các bạn để ý các ví dụ bên trên thì bạn sẽ thấy ở mỗi ví dụ mình đều cho lại 1 comment gọi hàm trong chương trình. Cách gọi một function rất đơn giản, sau khi bạn đã xây dựng hàm xong thì bạn chỉ cần code theo cú pháp tương tự mãu bên dưới.

functionName();
//hoặc
functionName($param);

Trong đó:

  • functionName: là tên của hàm các bạn muốn gọi.
  • $param: là tham số các bạn muốn truyền vào hàm (nếu lúc khai báo hàm có yêu cầu truyền tham số).

Bạn hãy xem lại ví dụ bên dưới

<?php
    function xuatchucai(){
        $name= array("one", "two", "three", "four", "five");
        foreach ($name as $value){ 
            echo "$value <br>"; 
        }
    }
    //sau khi xây dựng xong 1 hàm bạn hãy đóng làm lại bằng dấu } và sau đó gọi hàm bằng cách viết lại têm của hàm đó và thêm () phía sau.
    xuatchucai();
    //Không được code dòng gọi hàm khi vẫn đang trong hàm mà bạn đang xây dựng
?>
Lưu ý: Bạn không được gọi hàm khi bạn vẫn chưa xây dựng xong hàm đó hoặc chưa thực hiện đóng hàm lại nhé!

Thiết lập giá trị mặc định cho tham số hàm trong PHP

Bạn có thể thiết lập một tham số có một giá trị mặc định nếu người gọi hàm không truyền cho nó.

Nếu một hàm trong php bạn khai báo có biến truyền vào nhưng đến lúc gọi hàm để sử dụng bạn lại không truyền biến vào thì hệ thống sẽ báo lỗi ngay. Vì thế, để không bị ràng buộc khi sử dụng hàm có tham số truyền vào, ta sẽ thiết lập giá trị mặc định cho tham số đó ngay từ bước đầu xây dựng hàm.

<?php
function functionName($giatri = "gia tri mac dinh") {
    //code được thực thi;
}
?>

Ví dụ 1:

<?php
    function printMessage($param = "Giá trị mặc định")
    {
    echo $param;
    }
    //gọi hàm có truyền tham số là một chuỗi
    printMessage("Tham số này là một chuỗi được truyền vào!!!<br />");
    //gọi hàm khi không truyền tham số nào cả
    printMessage();
?>

Kết quả:

Tham số này là một chuỗi được truyền vào!!!
Giá trị mặc định

Ví dụ 2:

<?php
    function printMessage($a, $b, $c = 5)//$c sẽ có gia trị mặc định là 5
    {
    echo $a + $b + $c;
    }
    //gọi hàm có truyền tất cả tham số vào
    printMessage(2,3,6); // khi này hàm sẽ tự hiểu $a =4, $b =7, $c = 6
    echo " - ";
    //gọi hàm khi không truyền tham số $c vào 
    printMessage(4,7); // khi này hàm sẽ tự hiểu $a =4, $b =7 và $c mặc định sẽ bằng 5
?>

Kết quả xuất ra màn hình: 11 – 16

Truyền tham số bằng tham chiếu trong PHP

Tương tự như phần giới thiệu về cách thay đổi phần tử hiện tại bằng cách thay đổi tham chiếu mà mình đã nói qua trong bài 7 Vòng lặp Foreach ở phần thay đổi phần tử bằng tham chiếu

Ở trong function, PHP cũng tạo ra một bản sao chép giá trị của biến đó khi nạp tham số vào hàm, cho nên khi thay đổi giá trị của tham số này trong hàm thì giá trị của biến gốc sẽ vẫn như cũ mà không bị thay đổi theo.

Đôi lúc ta cần phải thay đổi luôn cả gái trị của biến gốc đang được gọi tham số trong hàm đó vì một số lý do của chương trình. Chính vì thế khi này ta sẽ phải sử dụng tham số bởi dạng tham chiếu.

Để dễ hiểu các bạn hãy xem ví dụ dưới đây:

<?php
    // Tạo 1 biến
    $bien = 0;

    // Hàm tăng giá trị tham số truyền vào lên 1
    function tinh_cong(&$bien) //gọi tham chiếu bằng cách thêm dấu &
    {
        $bien = $bien + 1;
        return $bien;
    }

    // Xuất giá trị trả về của hàm cộng
    echo tinh_cong($bien); //kết quả màn hình: 1

    // Xuất giá trị của biến gốc
    echo $bien; //kết quả màn hình: 1
    //bạn sẽ thấy biến gốc bây giờ đã thay đổi
?>

==> Bạn có thể truyền một tham số bởi tham chiếu thông qua việc thêm một ký hiệu & trước tên biến trong lời gọi hàm hoặc định nghĩa hàm.

Kiểm tra hàm đã tồn tại

Trong thực tế khi xây dựng các dự án với PHP hướng thủ tục thì số lượng các hàm sẽ không dừng ở con số 5,10,20,… mà nó sẽ lớn hơn rất là nhiều, như vậy thì chuyện trùng lặp hàm là điều không thể tránh khỏi đối với một lập trình viên không chuyên nghiệp hoặc một lý do nào khác khiến việc trùng lặp hàm xảy ra. Chính vì đều đó trong PHP đã cung cấp cho chúng ta một hàm function_exists() để giải quyết vấn đề đó.

Cú Pháp

function_exists('functionName');

Trong đó: functionName là tên của hàm các bạn kiểm tra và hàm này sẽ trả về giá trị TRUE nếu hàm đã tồn tại và  ngược lại FALSE nếu chưa tồn tại.

<?php
if (!function_exists('loopNumber')) {
    function loopNumber($number = 0)
    {
        for ($i = 0; $i <= $number; $i++) {
            echo $i;
        }
    }
}
//theo toidicode

Kết thúc

Qua bài trên mình đã giới thiệu và hướng dẫn các bạn cách khai báo và sử dụng hàm (function) trong PHP, đây là kiến thức quan trọng trong lập trình hướng đội tượng và các bạn sẽ phải tận dụng hàm rất nhiều trong các trương trình, dự án sau này, cho nên các bạn hãy nắm vững khái niệm về hàm nhé! Nếu có thắc mắc gì các bạn hãy để lại comment bên dưới bài viết đê mọi người cùng thảo luận nhé!

Ở bài tiếp theo mình sẽ giới thiệu cho các bạn khái niệm về mảng ( Array) trong PHP.

Hãy tiếp tục trong series học PHP căn bản ở các bài viết tiếp theo các bạn nhé!

Xem thêm:

Nếu các bạn cảm thấy Website TanHongIT.Net thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!
CHÚC CÁC BẠN THÀNH CÔNG

The post Bài 9: Hàm (Function) Trong PHP appeared first on Tân Hồng IT.

]]>
https://tanhongit.net/learn-php/bai-9-ham-function-trong-php/feed/ 0
Bài 8: lệnh Break, Continue và các hàm (function) exit, die thường dùng trong PHP https://tanhongit.net/learn-php/break-continue-va-hai-ham-exit-die-trong-php/ https://tanhongit.net/learn-php/break-continue-va-hai-ham-exit-die-trong-php/#respond Fri, 10 Jan 2020 05:48:13 +0000 https://tanhongit.net/?p=7627 Ở 2 bài học trước mình đã nói qua về các loại vòng lặp trong PHP là for, while, do while, foreach. Tiếp tục series học PHP căn bản thì trong bài này mình sẽ giới thiệu về 1 số lệnh như break, continue thường hay được dùng trong các vòng lặp trên và 2 […]

The post Bài 8: lệnh Break, Continue và các hàm (function) exit, die thường dùng trong PHP appeared first on Tân Hồng IT.

]]>
Ở 2 bài học trước mình đã nói qua về các loại vòng lặp trong PHPfor, while, do while, foreach. Tiếp tục series học PHP căn bản thì trong bài này mình sẽ giới thiệu về 1 số lệnh như break, continue thường hay được dùng trong các vòng lặp trên và 2 hàm mới là exit() die() có tác dụng gì nhé!

lenh va function thuong dung trong php
Lệnh và các Function thường dùng trong PHP

Câu lệnh Break thường dùng trong PHP

Câu lệnh Break dùng để thoát khỏi (hoặc kết thúc sự thực thi của) vòng lặp chứa nó môt cách đột ngột mặc dù vòng lặp vẫn chưa kết thúc. Break áp dụng cho tất cả các loại vòng lặp (for, while, do while, foreach). Ngoài ra, break còn dùng trong câu điều kiện if else hay cấu trúc switch case để thoát khỏi switch đó.

Nó trao bạn toàn quyền điều khiển bất cứ khi nào bạn muốn thoát khỏi vòng lặp. Sau khi ra khỏi vòng lặp, lệnh ngay sau vòng lặp đó sẽ được thực thi.

Break cho vòng lặp, switch lồng nhau.

Có thể sử dụng tham số integer cho break để xác định kết thúc đối với vòng lặp hay câu lệnh switch lồng nhau ở mức bao nhiêu.

  • break 1; tương tự như break; sẽ kết thúc vòng lặp hoặc câu lệnh switch hiện tại.
  • break 2; sẽ kết thúc vòng lặp hoặc câu lệnh switch hiện tại và cũng kết thúc vòng lặp hay câu lệnh bao bên ngoài nó.
  • Tương tự break n; sẽ kết thúc nhiều vòng lập hay câu lệnh switch lồng n lần.

Ví dụ về break 1;

<?php
for ($i = 1; $i <= 10; $i++) {
    echo $i;
    break; // hoặc có thể code là "break 1;"
}
?>

Kết quả xuất ra màn hình sẽ duy nhất là số 1. Bởi vì ngay lần lặp đầu tiên thì nó đã gặp câu lệnh break nên sau khi xuất được số 1 ở lần lặp đầu thì sẽ bị dừng lại và không thực hiện tiếp các lần lặp tiếp theo nữa.

Ví dụ về break 2;

<?php
for ($i = 1; $i <= 10; $i++) {
    switch ($i) {
        case 5:
            echo "i có giá trị 5"."<br>";
            break; // Chỉ thoát khỏi switch
        case 8:
            echo "i có giá trị 8"."<br>";
            break 2; // Thoát khỏi switch và cả vòng lặp for.
        default:
            break;
    }
}
?>

Kết quả xuất ra màn hình là:

i có giá trị 5
i có giá trị 10

Lưu ý: Nếu giá trị đối số tùy chọn của break lớn hơn số mức lồng ngoài nó thì sẽ cảnh báo lỗi. Ở ví dụ trên, nếu thay break 2; thành break 3; thì sẽ phát sinh lỗi do break chỉ nằm trong 2 mức lồng.

Ví dụ 2:

<?php
for ($i = 0; $i <= 3; $i++) {
    echo "1";
    while(1){
        echo "2";
        while(1){
            echo "3";
            break 3;
        }
    }
}
?>

Kết quả xuất ra sẽ là: 123

Câu lệnh Continue 

Câu lệnh continue có mục đích là bỏ qua lần lặp hiện tại trong vòng lặp sau đó nó sẽ nhảy qua kiểm tra điều kiện và thực hiện lần lặp kế tiếp

<?php
for ($i = 0; $i <= 3; ++$i) {
    if ($i == 2) {
        continue;
    }
    echo "$i"." - ";
}
?>

Khi $i = 2 (ở vòng lặp thứ 3) thì câu lệnh continue đã nhảy sang lần lặp thứ 4 cho nên câu lệnh echo sẽ không được thực hiện.

kết quả xuất ra màn hình sẽ là : 0 – 1 – 3 –

Theo đó, tất cả các câu lệnh phía sau continue trong khối lệnh của vòng lặp sẽ bị bỏ qua mà không thực hiện.


Continue cho vòng lặp lồng nhau.

Cũng giống như câu lệnh break, câu lệnh continue cũng có thể sử dụng tham số integer để xác định việc bỏ qua lần lặp hiện tại đối với vòng lặp lồng nhau ở mức tương ứng. Giá trị mặc định sẽ là 1 và nếu giá trị đối số tùy chọn của continue lớn hơn số mức lồng ngoài nó thì sẽ cảnh báo lỗi.

<?php
for ($i = 0; $i <= 3; $i++) {
    echo "1";
    while(1){
        echo "2";
        while(1){
            echo "3";
            continue 3;
        }
    }
}
?>

Ở bài trên câu lệnh continue đã bỏ qua lần lặp hiện tại của vòng lặp while ở mức 3, sau đó nó sẽ thực hiện tiếp vòng lặp tiếp theo sau khi đã kiểm tra điều kiện và tăng giá trị của biến $i. Vì vậy kết quả xuất ra màn hình sẽ là : 123123123123

Function die() và exit() dùng trong PHP

Ý nghĩa của 2 lệnh exitdie đều chung mục đích là thoát khỏi chương trình.

Khác với lại lệnh breakcontinue (2 lệnh này chỉ ảnh hưởng trong vòng lặp cụ thể chứa nó) thì 2 hàm dieexit sẽ ảnh hưởng đến toàn bộ chương trình. Nói rõ hơn, khi 1 trong 2 hàm này được gọi trong chương trình thì toàn bộ các câu lệnh nằm ở phía dưới nó đều sẽ không được thực hiện nữa.

Các cách thể hiện function exit

  • exit
  • exit()
  • exit(0)
  • exit(string): chuỗi string này sẽ được hiển thị trước khi thoát khỏi chương trình
//Cách 1
<?php
echo "Nguyen Van A";
exit;
echo "Nguyen Van B";
?>

//Cách 2
<?php
echo "Nguyen Van A";
exit();
echo "Nguyen Van B";
?>

//Cách 3
<?php
echo "Nguyen Van A";
exit(0);
echo "Nguyen Van B";
?>

//Kết quả xuất ra màn hình đều là: Nguyen Van A
//Ta thấy lệnh echo thứ 2 nó nằm dưới exit nên sẽ không được thực hiện

Ví dụ 2: đối với exit(string)

<?php
echo "Nguyen Van A";
exit("<br>Đã thoát chương trình.");
echo "Nguyen Van B";
?>

kết quả xuất ra sẽ là:

Nguyen Van A
Đã thoát chương trình

Các cách thể hiện function die

Cách thể hiện hàm die cũng tương tự như hàm exit.

  • die
  • die()
  • die(0)
  • die(string): chuỗi string này sẽ được hiển thị trước khi thoát khỏi chương trình
//Cách 1
<?php
echo "Nguyen Van A";
die;
echo "Nguyen Van B";
?>

//Cách 2
<?php
echo "Nguyen Van A";
die();
echo "Nguyen Van B";
?>

//Cách 3
<?php
echo "Nguyen Van A";
die(0);
echo "Nguyen Van B";
?>

//Kết quả xuất ra màn hình đều là: Nguyen Van A
//Ta thấy lệnh echo thứ 2 nó nằm dưới die nên sẽ không được thực hiện

Ví dụ 2: đối với die(string)

<?php
echo "Nguyen Van A";
die("<br>Đã thoát chương trình.");
echo "Nguyen Van B";
?>

kết quả xuất ra sẽ là:

Nguyen Van A
Đã thoát chương trình

Kết thúc

Qua bài trên mình đã nói sơ qua về một số lệnh và các hàm thường dùng như Break, Continue, Exit, Die trong PHP mà các bạn cần biết đến. Nếu có gì thắc mắc bạn hãy để lại comment bên dưới bài viết này nhé!

Ở bài tiếp theo mình sẽ giới thiệu cho các bạn khái niệm về hàm trong PHP.

Hãy tiếp tục trong series học PHP căn bản ở các bài viết tiếp theo các bạn nhé!

Xem thêm:

Nếu các bạn cảm thấy Website TanHongIT.Net thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!
CHÚC CÁC BẠN THÀNH CÔNG

The post Bài 8: lệnh Break, Continue và các hàm (function) exit, die thường dùng trong PHP appeared first on Tân Hồng IT.

]]>
https://tanhongit.net/learn-php/break-continue-va-hai-ham-exit-die-trong-php/feed/ 0
Bài 7: Vòng lặp Foreach trong PHP (Các loại vòng lặp phần 2) https://tanhongit.net/learn-php/bai-7-vong-lap-foreach-trong-php/ https://tanhongit.net/learn-php/bai-7-vong-lap-foreach-trong-php/#respond Wed, 01 Jan 2020 09:37:29 +0000 https://tanhongit.net/?p=7604 Ở bài trước ta đã học về các loại vòng lặp như for, while, do while các bạn có thể xem lại Bài 6: Các loại Vòng lặp trong PHP (for, while, do while). Còn ở bài này mình sẽ vẫn giới thiệu về vòng lặp nhưng nội dung chỉ xoay quanh duy nhất một […]

The post Bài 7: Vòng lặp Foreach trong PHP (Các loại vòng lặp phần 2) appeared first on Tân Hồng IT.

]]>
Ở bài trước ta đã học về các loại vòng lặp như for, while, do while các bạn có thể xem lại Bài 6: Các loại Vòng lặp trong PHP (for, while, do while). Còn ở bài này mình sẽ vẫn giới thiệu về vòng lặp nhưng nội dung chỉ xoay quanh duy nhất một vòng lặp đó là vòng lặp foreach trong PHP.

vong lap foreach trong php
Vòng lặp foreach trong PJP

Vòng lặp foreach trong PHP

Vòng lặp foreach là loại loop được dùng để duyệt các phần tử trong mảng, object. Đây là loại vòng lặp thường sẽ được sử dụng rất nhiều trong các dự án PHP sau này, đặc biệt là các bài liên kết đến cơ sở dữ liệu.

Cú pháp

<?php
foreach ($variable as $key => $value) {
    // code...
}
?>

hoặc

<?php
foreach ($variable as $value) {
    // code...
}
?>

Trong đó:

  • $variableLà biến mà các bạn muốn lặp (có thể là array, object).
  • $keyLà các key của mảng hoặc properties của object.
  • $valueLà một biến tạm dùng để chứa giá trị được sao chép của từng phần tử của mảng, object.

Bài tập ví dụ 1

<?php
//Khởi tạo mảng có key tự tăng.
$array= [
    'A',
    'B',
    'C',
    'D'
];
// Lặp cả key lẫn value của mảng
foreach ($array as $key => $value) {
    echo "Đây là phần tử có key = $key và có giá trị= $value <br/>";
}
?>

Ở ví dụ trên thì $array là mảng ta truyền vào, $key $value là 2 tham số mà ở mỗi vòng lặp nó tự động truyền giá trị. Kết quae xuất ra màn hình là:

Phần tử có key = 0 và giá trị= A
Phần tử có key = 1 và giá trị= B
Phần tử có key = 2 và giá trị= C
Phần tử có key = 3 và giá trị= D

Cũng từ bài ví dụ trên ta có thể dùng theo cú pháp thứ 2 của vòng lặp foreach trong php như sau:

<?php
//Khởi tạo mảng có key tự tăng.
$array= [
    'A',
    'B',
    'C',
    'D'
];
// Lặp lại value của mảng
foreach ($array as $value) {
    echo "$value -";
}
?>

Ở mỗi vòng lặp foreach, PHP sẽ tạo ra các bản sao để chúng ta lấy dữ liệu của phần tử đang lặp đó, bản sao này sẽ được loại bỏ ngay lập tức sau khi kết thúc vòng lặp. Và ở mỗi vòng lặp sẽ kiểm tra còn phần tử liền kề hay không? Nếu còn thì vòng lặp được tiếp tục, ngược lại thì sẽ dừng.

Ở ví dụ trên, các bản sao của biến $array đã được tạo ra và mình đã không truyền biến $key vào trong vòng forech nên mình chỉ có thể xuất được các giá trị $value ra màn hình mà thôi.

Kết quả xuất ra màn hình sẽ là: A -B -C -D –

Dùng tham chiếu để thay đổi phần tử hiện tại trong mảng foreach

Hãy xem ví dụ bên dưới.

<?php
$mang = array('one', 'two', 'three', 'four', 'five');
foreach ( $mang as $value ) {
    $value = strtoupper($value); // hàm strtoupper dùng để in hoa chuỗi ký tự
}
echo '<pre>';
print_r($mang); //xuất mảng
?>

Kết quả ra màn hình sẽ là:

Array
(
    [0] => one
    [1] => two
    [2] => three
    [3] => four
    [4] => five
)

Ở ví dụ trên mình đã sử dụng hàm strtoupper nhằm mục đích in hoa hết các chuỗi ký tự là các giá trị của các phần tử có trong bảng array. Nhưng kết quả xuất ra màn hình vẫn là chứ thường.

Giải thích:

Khi bắng đầu 1 loop foreach, PHP sẽ tạo ra 1 bản sao của mảng gốc để lặp, cho nên khi thay đổi các giá trị trong mảng gốc thì sẽ không có tác dụng. Vì vậy khi lặp chúng ta sẽ truyền tham chiếu truy xuất đến mảng gốc, có như vậy thì PHP sẽ không tạo 1 bản copy mảng để dùng nữa mà nó sẽ được gọi đến và lặp trực tiếp trên mảng gốc. Khi này, chúng ta thay đổi giá trị các phần tử trong mảng gốc sẽ có tác dụng.

Cách gọi 1 tham chiếu cho biến: đặt thêm ký tự “&” trước biến đó.

Như vậy cũng từ ví dụ trên ta sẽ làm như sau:

<?php
$mang = array('Xin', 'Chao', 'Moi', 'Nguoi', 'Den', 'Voi', 'Khoa', 'Hoc', 'PHP', 'Can', 'Ban');
foreach ( $mang as &$value ) { //mình đã thêm ký tự & trước biến $value để gọi 1 tham chiếu
    $value = strtoupper($value); // hàm strtoupper dùng để in hoa chuỗi ký tự
}
echo '<pre>';
print_r($mang); //xuất mảng
?>

Ở đây mình đã sử dụng tham chiếu &$value để truy xuất đến mảng gốc, khi này ta thay đổi giá trị của các phần tử trong mảng gốc sẽ có hiệu lực và ra kết quả như sau.

Array
(
    [0] => XIN
    [1] => CHAO
    [2] => MOI
    [3] => NGUOI
    [4] => DEN
    [5] => VOI
    [6] => KHOA
    [7] => HOC
    [8] => PHP
    [9] => CAN
    [10] => BAN
)

Kết luận:

  • Foreach trong PHP sẽ tạo ra một bản sao của mảng để lặp.
  • Khi foreach đang lặp theo bản sao của mảng gốc thì thay đổi giá trị phần tử trong mảng theo cách thông thường sẽ không có tác dụng
  • Muốn thay đổi giá trị phần tử hiện tại trong khi lặp thì phải dùng tham chiếu.

Vòng lặp foreach lồng nhau (mảng 2 chiều)

Cũng như các vòng lặp đã được đề cập ở bài 6 thì đối với vòng lặp foreach trong bài này cũng có tính chất tương tự là có thể lồng nhau. Thường thì ta sẽ sử dụng vòng lặp foreach lồng nhau để duyệt phần tử của mảng 2 chiều.

Ví dụ: duyệt các phần tử của mảng 2 chiều bằng vòng lặp foreach:

<?php
//Khởi tạo mảng 2 chiều
$array = [
        0 => 1, 
        1 => [1 => 4, 2 => 6],
        2 => [1 => "aa", 2 => "bb"],
        3 => [1 => 10, 2 => "cc", 3 => 0]
];
foreach ($array as $value) {
    if (is_array($value)) {
        foreach ($value as $item) {
            echo $item . " - ";
        }
    } else
        echo $value . " - ";
}
?>

Như vậy ta sẽ có kêt quả như sau: 1 – 4 – 6 – aa – bb – 10 – cc – 0 –

Kết thúc:

Vậy là qua bài 6 và bài 7 này mình đã giới thiệu cho các bạn về 4 loạn vòng lặp khác nhau thường được dùng trong PHP. Nếu các bạn có thắc mắc nay cần tư vấn điều gì thì hãy để lại comment bên dưới bài viết này nhé!, Mình sẽ cố gắng hỗ trợ các bạn!

Hãy tiếp tục trong series học PHP căn bản ở các bài viết tiếp theo các bạn nhé!

Xem thêm:

Nếu các bạn cảm thấy Website TanHongIT.Net thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!
CHÚC CÁC BẠN THÀNH CÔNG

The post Bài 7: Vòng lặp Foreach trong PHP (Các loại vòng lặp phần 2) appeared first on Tân Hồng IT.

]]>
https://tanhongit.net/learn-php/bai-7-vong-lap-foreach-trong-php/feed/ 0
Bài 6: Các loại Vòng lặp trong PHP (for, while, do while) https://tanhongit.net/learn-php/bai-6-cac-loai-vong-lap-trong-php/ https://tanhongit.net/learn-php/bai-6-cac-loai-vong-lap-trong-php/#respond Sat, 28 Dec 2019 13:39:16 +0000 https://tanhongit.net/?p=7560 Ở bài trước mình đã giới thiều về các biểu thức điều kiện if else và cấu trúc rẽ nhánh switch case, các bạn nếu chưa xem có thể xem thêm tại Bài 5: Biểu Thức Điều Kiện Trong PHP (Lệnh if, else, switch). Tiếp tục lộ trình học PHP căn bản thì qua bài này […]

The post Bài 6: Các loại Vòng lặp trong PHP (for, while, do while) appeared first on Tân Hồng IT.

]]>
Ở bài trước mình đã giới thiều về các biểu thức điều kiện if else và cấu trúc rẽ nhánh switch case, các bạn nếu chưa xem có thể xem thêm tại Bài 5: Biểu Thức Điều Kiện Trong PHP (Lệnh if, else, switch). Tiếp tục lộ trình học PHP căn bản thì qua bài này mình sẽ giới thiệu cho các bạn về vòng lặp (tên khác là Loop) trong PHP nhé!

vong lap trong php
Các Loại vòng lặp trong PHP

Vòng lặp là gì ?

Nói ngắn gọn thì vòng lặp được sử dụng để thực thi một đoạn code lặp đi lặp lại một số lần nhất định dựa trên giá trị trả về từ một điều kiện cho trước.

Các Loại Vòng Lặp Trong PHP

Khi lập trình đôi khi chúng ta sẽ cần chạy một đoạn code lặp đi lặp lại, lúc này sử dụng vòng lặp sẽ giúp chúng ta tránh việc phải thêm vào tập tin PHP những đoạn code giống nhau này nhiều lần.

Trong PHP chúng ta có các loại vòng lặp sau:

  • Vòng lặp while– Lặp một hành động dựa theo một điều kiện cụ thể mà nó trả về là true
  • Vòng lặp do...while– Lặp một hành động với số lần lặp nhất định
  • Vòng lặp for. – Lặp một hành động với số lần lặp nhất định
  • Vòng lặp foreach– Sử dụng để lặp các khoá và giá trị trong một dữ liệu mảng.

Vòng lặp for trong PHP

Thường bạn sử dụng vòng lặp này khi đã biết rõ trước số lần cần lặp lại là bao nhiêu.

Cú pháp

for ($bien_khoi_tao; $bieu_thuc_dieu_kien; $bieu_thuc_thay_doi_bien_khoi_tao)
{
    // phần câu lệnh thực thi vòng lặp
}
  • $bien_khoi_tao: là một câu lệnh chứa biến được gán giá trị ban đầu mà ta truyền vào trước khi chạy vòng lặp. Câu lệnh này chỉ thực hiện 1 lần duy nhất
  • $bieu_thuc_dieu_kien: là một biểu thức quan hệ nào đó nhằm mục đích xác định điều kiện thoát khỏi vòng lập.
  • $bieu_thuc_thay_doi_bien_khoi_tao: Là biểu thức xác định $bien_khoi_tao sẽ bị thay đổi như thế nào sau mỗi lần vòng lặp được lặp lại
Lưu ý: cú pháp khai báo vòng lặp là mỗi biểu thức phải cách nhua bằng dấu chấm phẩy ( ; )
Ví dụ: Xuất ra màn hình các số lần lượt tăng dần từ 0 đến 10.
<?php
for ($i = 0 ; $i <= 10 ; $i++){
    echo $i . '<br>';
}
?>
  • $i = 0 là biến khỏi tạo cho vòng lặp và có giá trị khởi tạo bằng 0
  • $i <= 10 là biểu thức điều kiện để dừng vòng lặp ( nếu $i <= 10 thì vòng lặp sẽ vẫn tiếp tục lặp, ngược lại nếu $i > 10 thì biểu thức sẽ hiểu là sai nên vòng lặp sẽ thoát
  • $i++ là biểu thức thay đổi biến khởi tại, sau mỗi lần lặp $i sẽ tăng lên 1

Ngoài ra khi khai báo cú pháp của vòng lặp thì trong thân của nó ta có thể thêm các biểu thức phụ bằng dấu phẩy để phâ biệt và ngăn cách chúng.

<?php 
for ($i = 0 , $j = 5 ; $i <= 10 ; $i++ , $j++)
{ 
    echo 'i = ' . $i . '<br>';
    echo 'j = ' . $j . '<br>'; // biến j sẽ xuất hiện theo thứ tự lần lượt cùng với biến i cho đến khi i>10 và kết thúc vòng lặp
} 
?>

Vòng lặp for lồng nhau

Nói một cách nôm na là có một vòng lặp cha sẽ bao một vòng lặp con khác bên trong nó. Ở mỗi lần lặp cho vòng lặp cha, vòng lặp con bên trong phải lặp hết điều kiện lặp của nó, sau đó mới lặp tiếp vòng lặp cha và cứ tiếp tục như vậy.

Như vậy ta sẽ thấy nó đang tuân thủ theo quy tắc phải thực hiện hết tất cả nội dung dòng lệnh bên trong vòng lặp rồi mới thực hiện vòng kế tiếp.

<?php 
$a=0;
for ($i = 0; $i < 10; ++$i)
{
    for ($j = 0; $j < 10; ++$j)
    {
        $a++;
        echo "Line $a =   " . $i*$j .'<br/>';
    }
}
?>

Với mỗi giá trị $i , chương trình thực hiện lệnh for($j=0;$j<10;++$j) 1 lần.

Bây giờ ta xét với vòng for($j=0;$j<10;++$j), và giá trị i là cố định, vòng for này sẽ thực hiện câu lệnh echo 10 lần.

Như vậy khi giá trị $i thay đổi 10 lần, với mỗi giá trị $i thì chương trình lại in câu lệnh echo 10 lần, như vậy tổng cộng là 100 lần in tất cả. Các bạn hãy code lại đoạn code cí dụ trên và chạy trên trình duyệt thử nhé!

Vòng lặp while trong PHP

Vòng lặp while cũng dùng để lặp dữ liệu như các vòng lặp khác nhưng ưu điểm của nó là có thể giải quyết những bài toán không biết chính xác số vòng lặp (một số bài toán thì for cũng có thể làm được) và cách sử dụng nó cũng rất đơn giản.

Cú pháp

while ($dieu_kien)
{
   // phần câu lệnh thực thi vòng lặp
}
  • $dieu_kien là điều kiện của vòng lặp. Nếu điều kiện trả về true thì vòng lặp sẽ chạy và ngược lại false thì sẽ dừng.
  • Suy ra nếu vòng lặp while sẽ lặp vô hạn nếu biểu thức điều kiện bạn truyền vào luôn luôn là true.

Ví dụ

liệt kê các số từ 1 tới 10 bằng cách sử dụng vòng lặp while.

<?php
    $i = 1; //khởi tạo biến $i bằng 1
    while ($i <= 10) {
        echo $i++;
    }
?>

Trong đó $i = 1 là biến dùng để lặp. Biểu thức $i <= 10 là điều kiện lặp. Bài toán sẽ thực hiện lặp cho đến khi $i = 10, vậy ta sẽ có 10 lần lặp và mỗi lần lặp biến $i sẽ tăng thêm 1 giá trị, như vậy ta sẽ có kết quả là lần lượt các số từ 1 đến 10 : 12345678910

Vòng lặp do while trong PHP

Đây là một vòng lặp ngược lại với các vòng lặp từ trước đến giờ, các vòng lặp khác kiểm tra điều kiện trước rồi với thực thi câu lệnh, còn vòng lặp do-while thực thi câu lệnh trước rồi mới kiểm tra điều kiện. Nếu điều kiện đúng thì sẽ thực hiện tiếp vòng lặp kế tiếp, nếu điều kiện sai thì sẽ dừng vòng lặp.

Vòng lặp do while tương tự như vòng lặp while tuy nhiên đoạn mã lệnh trong vòng lặp do while luôn được thực thi ít nhất một lần.

Cú pháp

<?php
    do{
        // phần câu lệnh thực thi vòng lặp
    }while($bieu_thuc_dieu_kien); //phải có dấu chấm phẩu sau khi hết thúc dòng while
?>

Chú ý: Phải có dấu ; ở phía sau while không chương trình sẽ báo lỗi.

Ví dụ

Liệt kê các số từ 1 tới 10 bằng cách sử dụng vòng lặp do while.

<?php
$i = 1; //khởi tạo biến $i bằng 1
do {
    echo $i++; // cộng thêm 1 đơn vị sau mỗi lần lặp
} while ($i <= 10); // nếu $i lớn hơn 10 dừng vòng lặp
?>

Tương tự như vòng lặp while, $i = 1 là biến dùng để lặp. Biểu thức $i <= 10 là điều kiện lặp. Bài toán sẽ thực hiện lặp cho đến khi $i = 10, vậy ta sẽ có 10 lần lặp và mỗi lần lặp biến $i sẽ tăng thêm 1 giá trị, như vậy ta sẽ có kết quả là lần lượt các số từ 1 đến 10 : 12345678910

Tuy rằng nó có thể giải quyết những bài toán không biết chính xác số vòng lặp, nhưng cả vòng lặp while lẫn vòng lặp do while đều rất dễ vị lặp vô hạn. Vì vậy khi code bạn phải cẩn thận về logic của bài toán, đặt biệt là biểu thức điều kiện.

Vòng lặp While, Do while lồng nhau

Tương tự như vòng lặp for và các mệnh đề quan hệ như if else thì cả 2 vòng lặp while và do while đều có thể lồng nhau.

Ví dụ 1: vẽ tam giác vuông với vòng lặp while lồng nhau.

<?php
$i = 0;
while ($i <= 10) {
    $j = $i;
    while ($j <= 10) {
        echo "*";
        $j++;
    }
    echo "<br>";
    $i++;
}
?>

Ví dụ 2: vẽ tam giác vuông với vòng lặp do while lồng nhau.

<?php
$i = 0;
do {
    $j = $i;
    do {
        echo "*";
        $j++;
    } while ($j <= 10);
    echo "<br>";
    $i++;
} while ($i <= 10);
?>

Khi nào nên sử dụng vòng lặp for, while, do while ?

Thông thường, đối với các bài toán khi đã biết rõ trước số lần cần lặp lại là bao nhiêu thì ta nên dùng vòng lặp for để thực hiện bài toán.

Còn đối với những bài toán không biết chính xác số vòng lặp thì ta nên dùng vòng lặp while hoặc do while.

Tuy nhiên ở một số bài toán, ta vẫn có thể sử dụng 3 vòng lặp trên để thực hiện theo 3 phương pháp khác nhau đều được. Tất cả là phụ thuộc vào kinh nghiệm của người lập trình, bạn sẽ là người quyết định nên dùng vòng lặp nào vào bài toán của bạn để nó chạy nhanh nhất và tối ưu hoá nhất cho chương trình của mình mà không phát sinh lỗi.

Kết thúc:

Thực ra vẫn còn 1 loại vòng lặp nữa là vòng lặp foreach. Nhưng mình sẽ nói riêng về vòng lặp này ở bài viết tiếp theo các bạn nhé!

Vòng lặp là một kiến thức cơ bản mà bạn nên nắm vững để sau này thực hiện nhiều bài toán trong dự án của bạn. Vì thế nếu có thắc mắc gì các bạn cứ để lại comment ở bên dưới bài viết mình sẽ cố gắng giải đáp nhé!

Xem thêm:

Nếu các bạn cảm thấy Website TanHongIT.Net thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!
CHÚC CÁC BẠN THÀNH CÔNG

The post Bài 6: Các loại Vòng lặp trong PHP (for, while, do while) appeared first on Tân Hồng IT.

]]>
https://tanhongit.net/learn-php/bai-6-cac-loai-vong-lap-trong-php/feed/ 0
Mô hình Client-Server là gì và cách hoạt động Client-Server https://tanhongit.net/kien-thuc/mo-hinh-client-server/ https://tanhongit.net/kien-thuc/mo-hinh-client-server/#respond Mon, 23 Dec 2019 06:38:33 +0000 https://tanhongit.net/?p=7568 Mô hình client-server là một mô hình nổi tiếng trong mạng máy tính, được áp dụng rất rộng rãi và là mô hình của mọi trang web hiện có. Ý tưởng của mô hình này là máy con (đóng vài trò là máy khách) gửi một yêu cầu (request) để máy chủ (đóng vai trò […]

The post Mô hình Client-Server là gì và cách hoạt động Client-Server appeared first on Tân Hồng IT.

]]>
Mô hình client-server là một mô hình nổi tiếng trong mạng máy tính, được áp dụng rất rộng rãi và là mô hình của mọi trang web hiện có. Ý tưởng của mô hình này là máy con (đóng vài trò là máy khách) gửi một yêu cầu (request) để máy chủ (đóng vai trò người cung ứng dịch vụ), máy chủ sẽ xử lý và trả kết quả về cho máy khách.

Trong mô hình này, chương trình ứng dụng được chia thành 2 thành phần: Server Client. Client hay còn gọi là máy khách, nó bao gồm máy tính và các thiết bị điện tử nói chung. Server hay còn gọi là máy chủ, là nơi cài đặt các chương trình dịch vụ và lưu trữ tài nguyên.

client server
Mô hình Client-Server

Việc yêu cầu của máy khách, đáp ứng, xử lý, và phản hồi của máy chủ tạo thành một dịch vụ. Dịch vụ này hoạt động trên nền web nên nó được gọi là dịch vụ web (hay web service).

Ngoài ra, việc giao tiếp giữa Client với Server phải dựa trên các giao thức chuẩn. Các giao thức chuẩn được sử dụng phổ biến nhất hiện nay là : giao thức TCP/IP, giao thức SNA của IBM, OSI, ISDN, X.25 hay giao thức LAN-to-LAN NetBIOS.

Vì sao các Website thường sử dụng mô hình client-server

  • Dữ liệu và tài nguyên được tập trung lại và tăng tính toàn vẹn của các dữ liệu.
  • Sự linh động trong việc mở rộng được hệ thống mạng.
  • Không phụ thuộc vào cùng một nền tảng, chỉ cần chung một định dạng giao tiếp (protocol) là có thể hoạt động được.

Chỉ có điều nhược điểm của mô hình này là tính an toàn và bảo mật các thông tin trên mạng. Do phải trao đổi các dữ liệu giữa hai máy ở hai khu vực khác nhau nên dễ dàng xảy ra hiện tượng thông tin trên mạng bị mất bí mật và từ đó vai trò của quản trị mạng trở nên quan trọng lên rất nhiều.

Bảng so sánh mô hình client server với các mô hình khác

Mô hình mạng / tiêu chí đánh giá Client Server Peer-to-Peer Hybrid
Khả năng bảo mật thông tin và độ an toàn Khả năng bảo mật và an toàn thông tin cao. Có thể điều chỉnh quyền truy cập thông tin. Khả năng bảo mật và an toàn thông tin kém. Phần lớn phụ thuộc vào mức độ quyền được chia sẻ. Khả năng bảo mật và an toàn thông tin cao. Có thể điều chỉnh quyền truy cập thông tin.
Khả năng cài đặt Cài đặt khá khó khăn. Cài dặt dễ dàng. Cài đặt khá khó khăn.
Yêu cầu về phần cứng và phần mềm Bao gồm:+ Máy chủ+ Hệ điều hành

+ Phần cứng

Chỉ cần ít phần cứng bổ sung. Ngoài ra không cần máy chủ và hệ điều hành như 2 mô hình trên. Bao gồm:+ Máy chủ+ Hệ điều hành

+ Phần cứng

Yêu cầu về quản trị mạng Cần phải có quản trị mạng Không cần quản trị mạng Cần phải có quản trị mạng
Có khả năng xử lý và lưu trữ tập trung không? Không Không
Chi phí cài đặt Chi phí cao Chi phí thấp Chi phí thấp

Cách thức mô hình client server hoạt động như thế nào ?

Quy trình hoạt đông được chia làm 2 bước:

Client

Các máy trạm trong mô hình này gọi là máy khách (client). Đây là nơi tiếp nhận những thao tác yêu cầu từ người dùng và sau đógởi các yêu cầu xử lý về máy chủ (server).

Phần phía Client là nơi trung gian tổ chức giao tiếp giữa người dùng với môi trường làm việc trên máy khách (client) và với phía Server. Sau khi tiếp nhận yêu cầu của người dùng, máy khách client sẽ thành lập các query string để gửi về phía Server.

Server

Phần phía Server quản lý các giao tiếp môi trường giữa Server và với các Client, tiếp nhận các yêu cầu dưới dạng các xâu ký tự (query string). Sau khi phân tích các query string được request từ máy khách client, phần phía Server sẽ xử lý dữ liệu và gửi kết quả trả lời về phía các Client.

Sau đó sẽ hiện lên màn hình đến cho người dùng.

Ưu điểm mô hình client-server là gì?

Ưu điểm của mô hình client server là với mô hình client server thì mọi thứ dường như đều nằm trên bàn của người sử dụng, nó có thể truy cập dữ liệu từ xa (bao gồm các công việc như gửi và nhận file, tìm kiếm thông tin,…) với nhiều dịch vụ đa dạng mà mô hình cũ không thể làm được.

Mô hình client-server cung cấp một nền tảng lý tưởng cho phép tích hợp các kỹ thuật hiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS)…

Nhược điểm mô hình client server là gì?

Như đã nói ở các phần trên, nhược điểm duy nhất của mô hình này là tính an toàn và bảo mật các thông tin trên mạng. Do phải trao đổi các dữ liệu giữa hai máy ở hai khu vực khác nhau ở xa nhau nên dễ dàng xảy ra hiện tượng thông không được an toàn.

Một số ví dụ về mô hình client server

Mail Server

Ở bên phía Client, người dùng soạn thảo Email và sẽ gửi đến Mail Server, phía bên Mail Server sẽ tiếp nhận và lưu trữ, tìm kiếm địa chỉ của mail được gửi đến và gửi đi.

Web Server

Lưu trữ các trang Web. khi người dùng ở phía máy Client nhập địa chỉ của trang web, Client sẽ gửi yêu cầu đến máy chủ Web và máy chủ Web sẽ gửi toàn bộ nội dung của trang web về cho phía Client.

File Server

Lưu trữ các tập tin. Nhận và truyền đi các tập tin về phía Client , người dùng có thể download – upload các tập tin lên Server qua Web browser hoặc là giao thức FTP

Các cấu hình cơ sở dữ liệu Client/Server

Nhìn chung mọi ứng dụng cơ sở dữ liệu đều bao gồm các phần:

  • Thành phần xử lý ứng dụng (Application processing components)
  • Thành phần phần mềm cơ sở dữ liệu (Database software componets)
  • Bản thân cơ sở dữ liệu (The database itself)

Các mô hình về xử lý cơ sở dữ liệu khác nhau là bởi các trường hợp của 3 loại thành phần nói trên định vị ở đâu. Bài viết này này xin giới thiệu 5 mô hình kiến trúc dựa trên cấu hình phân tán về truy nhập dữ liệu của hệ thống máy tính Client/Server.

  1. Mô hình cơ sở dữ liệu tập trung (Centralized database model)
  2. Mô hình cơ sở dữ liệu theo kiểu file – server (File – server database model)
  3. Mô hình xử lý từng phần cơ sở dữ liệu (Database extract processing model)
  4. Mô hình cơ sở dữ liệu Client/Server (Client/Server database model)
  5. Mô hình cơ sở dữ liệu phân tán (Distributed database model)

Ngoài ra ta còn có một mô hình ngược lại là mô hình master-slaver, trong đó máy chủ (đóng vai trò ông chủ) sẽ gửi dữ liệu đến máy con (đóng vai trò nô lệ) bất kể máy con có cần hay không.

Xem thêm:

Nếu các bạn cảm thấy Website TanHongIT.Net thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!
CHÚC CÁC BẠN THÀNH CÔNG
via wiki, bkhost, internet

The post Mô hình Client-Server là gì và cách hoạt động Client-Server appeared first on Tân Hồng IT.

]]>
https://tanhongit.net/kien-thuc/mo-hinh-client-server/feed/ 0