PHP là viết tắt của PHP Hypertext Preprocessor là ngôn ngữ script server-side mã nguồn mở được sử dụng rộng rải cho thiết kế website động và API di động.
PHP hỗ trợ nhiều cơ sở dữ liệu như MySQL, Solid, PostgreSQL, Oracle, Sybase, ... Code PHP được nhúng trong HTML.
PHP cũng là ngôn ngữ cho xây dựng WordPress chiếm khoảng 80% website trên Internet.
PHP không phải là ngôn ngữ script phía server duy nhất có sẵn – vẫn còn nhiều ngôn ngữ khác nữa. Tuy nhiên, nó có lợi thế hơn các đối thủ cạnh tranh nếu như bạn đang chạy trang web WordPress.
Như chúng tôi đã đề cập trước đó, WordPress được xây dựng dựa trên việc sử dụng PHP. Vì vậy sử dụng ngôn ngữ này giúp cải thiện đáng kể số lượng tùy chỉnh có thể có trên trang web. Bạn có thể sử dụng nó để sửa đổi plugins và themes có sẵn hoặc tự tạo plugin! Nếu bạn muốn trở thành nhà phát triển WordPress, bạn bắt buộc phải học PHP.
Nếu vẫn chưa bị thuyết phục, đây là một số lý do khác khiến PHP là ngôn ngữ script tuyệt vời để sử dụng:
- Dễ học – bạn có thể học dễ dàng vì nó có tài liệu tuyệt vời về các chức năng cùng các ví dụ.
- Được sử dụng rộng rãi – nó được sử dụng để tạo ra các loại nền tảng như thương mại điện tử, blogs, phương tiện truyền thông xã hội, v.v. Thống kê cho thấy 80% tất cả các trang web đều sử dụng PHP!
- Chi phí thấp – nó là nguồn mở để bạn có thể sử dụng miễn phí.
- Cộng đồng lớn – nếu gặp phải bất kỳ vấn đề nào với nó, bạn không phải lo lắng vì có rất nhiều blog PHP trên internet.
1. Sự khác biệt giữa biến và hằng trong PHP?
4. Giải thích sự khác biệt giữa $message và $$message?
5. PHP có phải là case-sensitive?
6. Các kiểu dữ liệu trong PHP?
7. Luật đặt tên biến trong PHP?
8. Sự khác biệt giữa echo và print trong PHP?
10. HTML và PHP tương tác như thế nào?
12. Giải thích về Parser trong PHP?
16. JavaScript có thể tương tác với PHP?
17. Vòng lặp foreach trong PHP?
18. Cách băm mật khẩu trong PHP?
19. Sự khác biệt giữa include và require()?
21. Thuật ngữ "Escaping to PHP" là gì?
22. Giải thích về Path Traversal?
23. Phương thức final và lớp final là gì?
24. Các bước tạo cơ sở dữ liệu dùng PHP và MySQL?
25. Hàm session_start() và session_destroy() trong PHP?
26. Memcache và Memcached trong PHP là gì?
27. Các cách khác nhau để xử lý tập kết quả của MySQL trong PHP?
28. Cách kết nối URL trong PHP?
31. Sự khác biệt giữa GET và POST?
32. Type hinting trong PHP là gì?
33. Làm thế nào để dừng việc thực thi script trong PHP?
Biến | Hằng |
---|---|
Có thể thay đổi giá trị khi thực thi script | Không thể thay đổi giá trị khi thực thi script |
Các biến yêu cầu bắt buộc sử dụng ký hiệu $ khi bắt đầu | Ký hiệu $ không bắt buộc khi dùng hằng |
Có thể khai báo thông qua phép gán đơn giản | Không thể khai báo qua phép gán mà phải sử dụng hàm define() |
Scope mặc định là scope đang truy cập | Có thể được truy cập bởi bất kỳ scope nào |
Session là một cách để lưu trữ thông tin (trong các biến) được sử dụng trên nhiều trang.
Không giống như một cookie, thông tin session được lưu trữ trên server, chứ không được lưu trữ trên máy tính người dùng.
Khi bạn làm việc với một ứng dụng, bạn mở nó, thực hiện một số thay đổi, và sau đó bạn đóng nó lại. Điều này giống như một phiên (session). Máy tính biết bạn là ai. Nó biết khi bạn bắt đầu ứng dụng và khi bạn kết thúc. Nhưng trên internet có một vấn đề: máy chủ web không biết bạn là ai hoặc bạn làm gì, vì giao thức HTTP không duy trì trạng thái.
Các biến session giải quyết vấn đề này bằng cách lưu trữ thông tin người dùng được sử dụng trên nhiều trang (ví dụ: tên người dùng, sở thích, v.v.). Theo mặc định, các biến session tồn tại cho đến khi người dùng đóng trình duyệt.
Vì thế biến sesion giữ thông tin về một người dùng duy nhất và có sẵn cho tất cả các trang trong một ứng dụng.
PEAR là viết tắt của PHP Extension and Application Repository. Mục đích chính của nó là trở thành một kho chứa cho phần mã thư viện và mở rộng dùng cho PHP, và với tham vọng định ra các chuẩn mực có thể giúp các nhà phát triển tạo nên những dòng mã khả chuyển và có thể dùng lại.
PEAR nó cung cấp:
- Một thư viện có cấu trúc các mã nguồn mở cho người dùng PHP.
- Một hệ thống phân phối và đóng gói mã nguồn
- Một phong cách chuẩn viết mã trong PHP
- PHP Foundation Classes (PFC)
- PHP Extension Community Library (PECL)
$message | $$message |
---|---|
Là biến thông thường | Là biến tham chiếu |
Có tên và lưu trữ giá trị cố định | Lưu trữ dữ liệu về biến |
Lưu trữ dữ liệu cố định | Dữ liệu được lưu có thể thay đổi khi giá trị của biến thay đổi |
PHP chỉ case-sensitive một nữa. Tên các biến là phân biệt hoa thường nhưng hàm thì không.
Ví dụ: các hàm do người dùng định nghĩa trong PHP có thể được định nghĩa bằng chữ thường nhưng sau đó được gọi bằng chữ hoa thì nó vẫn hoạt động bình thường.
Có 8 kiểu dữ liệu chính trong PHP cho khai báo biến:
- Integer: bao gồm toàn bộ số nguyên. Vd: 1235
- Double: bao gồm các số dấu phẩy động như 7.786
- Booleans: biểu diễn giá trị luân lý - true hoặc false.
- NULL: là kiểu đặc biệt chỉ có một giá trị là NULL. Khi không có giá trị nào được gán cho một biến, nó có thể được gán với NULL.
- Arrays: là tập hợp có thứ tự với kiểu dữ liệu giống nhau.
- Strings: là chuỗi tuần tự các ký tự.
- Resources: là biến đặc biệt bao gồm tham chiếu đến các nguồn tài nguyên bên ngoài PHP.
- Objects: là thực thể của lớp bao gồm dữ liệu và hàm
- Biến phải bắt đầu với ký tự dollar "$", theo sau là tên biến. Ví dụ:
$price=100
, trong đó price là tên biến. - Tên biến phải bắt đầu là một ký tự chữ cái hoặc gạch dưới.
- Tên biến có thể bao gồm chữ cái, số hay gạch dưới. Nhưng không thể sử dụng ký tự như
+
,-
,%
,&
,... - Tên biến không thể bao gồm khoảng trắng.
- Biến PHP phân biệt hoa thường. Nên $NAME và $name là hai biến khác nhau.
echo | |
---|---|
echo có thể xuất một hay nhiều chuỗi | print chỉ xuất một chuỗi và luôn trả về 1 |
echo nhanh hơn print vì không phải trả về giá trị | print chậm hơn echo |
Nếu bạn muốn truyền nhiều hơn một tham số cho echo, thì nên sử dụng dấu ngoặc đơn | Không bắt buộc phải sử dụng dấu ngoặc với danh sách đối số |
- Nhược điểm phải nói đến đầu tiên khi dùng PHP chính là cấu trúc ngôn ngữ của nó nhìn không được gọn gàng cho lắm. Mọi câu lệnh được viết trong cặp câu lệnh
<?php … ?>
. - Không giống như Java và C# khi bạn học thì có thể làm website, các ứng dụng điện thoại, chương trình hay phần mềm… . tuy nhiên đối với PHP chỉ có thể sử dụng làm website và các ứng dụng website mở rộng mà thôi.
- Nhược điểm lớn nhất đáng nói đến là khả năng bị sao chép và hack mã code dễ hơn và độ an toàn không cao như các ngôn ngữ lập trình khác. Nhưng từ khi lên phiên bản PHP 7 chấm trở lên đã khác phục được rất nhiều vấn đề này.
Script PHP có thể tạo ra HTML, và có thể chuyển thông tin từ HTML sang PHP.
PHP là ngôn ngữ server-side trong khi HTML là ngôn ngữ client-side. Vì vậy PHP thực thi ở phía server và tạo ra kết quả là chuỗi, mảng, đối tượng rồi hiển thị các giá trị đó ở HTML.
PHP có một toán tử kiểm soát lỗi, tức là ký hiệu (@
). Bất cứ khi nào nó được sử dụng với một biểu thức, thì tất cả thông báo lỗi nào có thể được tạo ra bởi biểu thức đó sẽ bị bỏ qua.
Một PHP Parser là một phần mềm chuyển mã nguồn PHP thành code mà máy tính có thể hiểu được. Tức là bất cứ tập hướng dẫn nào mà ta đưa ra dưới dạng code PHP đều được trình phân tích cú pháp chuyển đổi thành dạng máy có thể đọc được.
Ta có thể parse code PHP bằng cách dùng hàm token_get_all()
.
Trong PHP có 3 kiểu array:
Một mảng với giá trị khoá là số còn được gọi là indexed array. Giá trị được lưu trữ và truy cập theo thứ tự tuyến tính.
Một mảng với giá trị khoá được đặt tên và là chuỗi còn được gọi là associative array. Giá trị phần tử được lưu cùng với giá trị khoá thay vì theo thứ tự tuyến tính.
Một mảng có một hoặc nhiều mảng khác nằm trong nó được gọi là multidimensional array. Giá trị có thể truy cập bằng nhiều chỉ mục.
Có 3 kiểu lỗi trong PHP:
- Notices: là những lỗi không nghiêm trọng có thể xảy ra trong quá trình thực thi script. Những điều này không hiển thị cho người dùng. Ví dụ một biến undefined.
- Warrnings: là những cảnh báo quan trọng hơn. Warning không làm gián đoạn quá trình thực thi script. Theo mặc định chúng hiển thị cho người dùng. Vd:
include
một file không tồn tại. - Fatal: là loại lỗi nghiêm trọng nhất khi xảy ra, nó sẽ chấm dứt thực thi script. Vd truy cập thuộc tính của một đối tượng không tồn tại hoặc
require()
một file không tồn tại.
Traits là một cơ chế để tái sử dụng code trong các ngôn ngữ đơn kế thừa như PHP. Một Trait nhằm giảm hạn chế của sự đơn thừa kế bằng cách cho phép nhà phát triển sử dụng lại các bộ phương thức một cách tự do trong một số lớp độc lập trong các hệ thống phân cấp lớp khác nhau.
Một Trait tương tự như một lớp (Class), nhưng chỉ nhằm mục đích nhóm chức năng một cách chi tiết và nhất quán. Và nó không có khả năng khởi tạo ví dụ: new class ABC()
. Nó là một sự bổ sung cho sự thừa kế truyền thống (đơn kế thừa) trong ngôn ngữ PHP.
JavaScript là ngôn ngữ dùng cả hai phía server và client (chủ yếu), còn PHP dùng cho phía server. PHP có khả năng tạo biến JavaScript, và có thể thực thi chúng trên trình duyệt. Từ đó giúp bạn có thể chuyển các biến sang PHP bằng một URL đơn giản.
Lệnh foreach là một vòng lặp dùng trong PHP cho phép lặp qua các kiểu dữ liệu array.
Hoạt động của foreach rất đơn giản, với mỗi lần truyền giá trị, các phần tử được gán một giá trị và các con trỏ được tăng dần. Quá trình này được thực hiện lặp đi lặp lại cho đến khi đến cuối mảng.
Cú pháp :
foreach($array as $value)
{
Code inside the loop;
}
Hàm crypt()
dùng cho chức năng băm với một lượng lớn thuật toán băm có thể sử dụng như sha1
, sha256
hoặc md5
.
Khi import một file bằng hàm require()
nếu file không tồn tại hoặc chương trình không tìm thấy, nó sẽ trả về lỗi (E_COMPILE_ERROR
) và tạm dừng chương trình. Còn với include()
nó chỉ trả về cảnh báo (E_WARNING
) và tiếp tục chương trình.
Cookie là mẩu tin nhỏ được lưu ở máy người dùng (cụ thể là tại trình duyệt), cookie sử dụng với mục đích để theo dõi, lưu lại hoạt động truy cập. Ví dụ nhớ tên người dùng truy cập vào website có thể hoạt động qua các bước như sau:
- Server gửi các cookie cho trình duyệt (ví dụ tên người dùng: username) ...
- Trình duyệt lưu lại thông tin này (cookie)
- Lần sau truy cập URL cùng domain (tên miền) trình duyệt sẽ gửi ngược các cookie này lên server và server sẽ nhận được cookie, từ đó xác định được thông tin (như username) ... Nên nhớ cookie được lưu lại ở trình duyệt, sau đó mỗi lần gửi yêu cầu đến server nó sẽ tự động gửi thông tin này đến server
Theo mặc định, cookie là URL cụ thể. Ví dụ, các cookie của Gmail không được Yahoo hỗ trợ và ngược lại. Mỗi trang có thể tạo 20 cookie trong một trang web hoặc ứng dụng web. 50 byte là kích thước ban đầu của cookie và 4096 byte là kích thước tối đa của cookie.
Cú pháp
setcookie(name, value, expire, path, domain, secure, httponly);
Ví dụ:
setcookie("instrument_selected", "guitar")
PHP parsing engine cần một cách để phân biệt code PHP với các phần tử trang khác. Cơ chế để thực hiện điều này gọi là "escaping to PHP". Escaping có nghĩa là giảm sự trùng lặp khi dùng chuỗi.
Ví dụ, khi bạn khai báo một chuỗi trong cặp dấu nháy đơn hoặc kép:
"Hello, Interviewer"
Nhưng nếu ta thêm dấu nháy vào chuỗi:
"Hello "Interviewer""
Bây giờ ta gặp vấn đề - trình thông dịch sẽ không hiểu chuỗi kết thúc ở đấu. Nếu ta vẫn muốn giữ dấu nháy ta có hai cách. Hoặc là ta sử dụng dấu nháy đơn bọc bên ngoài.
'Hello "Interviewer"'
Hoặc ta dùng escape
"Hello "Interviewer""
Bất kỳ dấu nháy kép nào đứng trước dấu gạch chéo đều được escape và được hiểu là một phần giá trị của chuỗi.
Path traversal hay còn gọi là Directory traversal là một lỗ hổng bảo mật cho phép kẻ tấn công đọc các file TÙY Ý trên server. Nó dẫn đến việc bị lộ thông tin nhạy cảm của ứng dụng web như thông tin đăng nhập, một số file hoặc thư mục hệ điều hành.
Sở dĩ nói là TÙY Ý, bởi vì trên server sẽ có sự phân quyền và sở hữu đối với các file và folder, admin sẽ sử dụng Access Control List để quy định ai được sử dụng những file này nhằm mục đích gì (read, write, excute). Còn Path Traversal sẽ thực hiện hành vi truy cập vào các file hay folder bị hạn chế truy cập như thế này.
Ví dụ: ta có một button Show File
dùng để mở một vài URL.
Với tấn công path traversal kiểu cổ điển, kẻ tấn công có thể truy cập file hệ thống /etc/paswd
(giả sử là hệ thống Unix/Linux). Nếu ứng dụng nhận giá trị của tham số file từ URL và chuyển nó đến lệnh gọi hệ thống, nó sẽ đi qua đường dẫn tương đối ../../etc/passwd
bắt đầu từ /var/www
và yêu cầu hệ thống tải file password.
Kỹ thuật này còn được gọi là dot-dot-slash, vì nó thường ký tự ../
hoặc \..
trên Windows để lên đường dẫn cao hơn.
Từ khoá final
trong khai báo phương thức chỉ ra rằng phương thức đó sẽ không thể bị ghi đè bởi lớp con. Một lớp được khai báo là final sẽ không thể có lớp con.
Điều này đặc biệt hữu ích khi chúng ta đang tạo một lớp bất biến như lớp String. Chỉ các lớp và phương thức mới có thể được khai báo là final, các thuộc tính không thể được khai báo là final.
4 bước để tạo cơ sở dữ liệu MySQL trong PHP:
- Thiết lập kết nối đến MySQL Server bằng PHP script.
- Kết nối được xác thực. Nếu nó thành công, ta có thể viết một truy vấn để kiểm thử.
- Truy vấn tạo cơ sở dữ liệu là input và được lưu dạng biến chuỗi sau đó.
- Sau đó, truy vấn tạo lần lượt được thực thi.
Hàm session_start () được sử dụng để bắt đầu một phiên mới. Ngoài ra, nó có thể tiếp tục một phiên hiện có đang bị dừng.
session_start();
Hàm session_destroy() dùng để huỷ tất cả biến phiên.
<?php
session_start();
session_destroy();
?>
Memcached là một daemon bộ nhớ đệm hiệu quả được thiết kế đặc biệt để giảm tải cơ sở dữ liệu trong các ứng dụng web động. Memcache cung cấp giao diện hướng đối tượng và thủ tục tiện dụng cho Memcached.
Memcache là không gian lưu trữ bộ nhớ. Chúng tôi có thể chạy Memcache trên một hoặc một số máy chủ. Do đó, có thể chia sẻ một phiên bản Memcache duy nhất giữa nhiều dự án.
Có thể cấu hình một ứng dụng client để nói chuyện với một tập hợp các trường hợp riêng biệt. Do đó, nó được phép chạy hai tiến trình Memcache khác nhau trên cùng một máy chủ. Mặc dù chạy trên cùng một máy chủ, cả hai quy trình Memcache như vậy vẫn độc lập, trừ khi có một phân vùng dữ liệu
Có 4 cách xử lý tập kết quả MySQL trong PHP là:
mysqli_fetch_array()
: Trả về hàng hiện tại của tập kết quả dưới dạng một mảng kết hợp, một mảng số hoặc cả hai.mysqli_fetch_assoc()
: Trả về hàng hiện tại của tập hợp kết quả dưới dạng một mảng kết hợp.mysqli_fetch_object()
: Trả về hàng hiện tại của tập hợp kết quả dưới dạng một đối tượng.mysqli_fetch_row()
: Trả về hàng kết quả dưới dạng một mảng được liệt kê.
Bất kỳ URL nào cũng có thể kết nối đến PHP dễ dàng bằng cách dùng thư viện cURL. Nó là một thư viện mặc định với cài đặt chuẩn của PHP.
Thuật ngữ cURL là viết tắt của client-side URL. cURL sử dụng libcurl (client-side URL Transfer Library). Nó hỗ trợ các phương thức như FTP, FTPS, HTTP/1, HTTP POST, HTTP PUT, HTTP proxy, HTTPS, IMAP, Kerberos,... Nó cho phép bạn kết nối một URL và truy xuất hiển thi thông tin của trang web đó (như nội dung HTML của trang, HTTP Header hay dữ liệu liên kết với chúng).
- Tạo phiên cURL
- Khai báo URL mà bạn muốn POST. Ta có thể nhập trực tiếp URL này vào tham số tuỳ chọn chèn URL hoặc ta có thể gán nó cho một đối tượng.
- Bây giờ, xác định tuỳ chọn cURL mà bạn muốn thực thi với POST.
- Sau khi thiết lập tất cả hàm, thì thực thi cURL của chúng ta.
- Sau đó đóng cURL và lặp lại đối tượng để kiểm tra phản hồi của chúng.
//Step 1 To initialize curl
$ch = curl_init();
//Step 2 To set url where you want to post
$url = 'http://www.localhost.com';
//Step 3 Set curl functions which are needs to you
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POSTFIELD,'postv1 = value1&postv2 = value2');
//Step 4 To execute the curl
$result = curl_exec($ch);
//Step 5 Close curl
curl_close($ch);
Bước 1 - Tạo cơ sở dữ liệu
CREATE DATABASE phptest
Bước 2 - Tạo bảng: Sau khi tạo cơ sở dữ liệu, bạn phải tạo một bảng với dữ liệu giả. Để tạo một bảng, hãy chạy truy vấn đưa ra bên dưới:
CREATE TABLE IF NOT EXISTS `transactions`
(
`id` int(20) NOT NULL AUTO_INCREMENT,
`order_id` int(50) NOT NULL,
`amount` decimal(9,2) NOT NULL,
`response_code` int(10) NOT NULL,
`response_desc` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Bước 3 - Kết nối đến cơ sở dữ liệu: Tạo file db.php và dán đoạn code bên dưới vào nó.
<?php
// Enter your Host, username, password, database below.
$con = mysqli_connect("localhost","root","","phptest");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
die();
}
?>
Bước 4 - Tạo file REST API: Tạo file api.php và tiếp tục dạn đoạn code bên dưới vào.
<?php
header("Content-Type:application/json");
if (isset($_GET['order_id']) && $_GET['order_id']!="") {
include('db.php');
$order_id = $_GET['order_id'];
$result = mysqli_query($con,
"SELECT * FROM `transactions` WHERE order_id=$order_id");
if(mysqli_num_rows($result)>0) {
$row = mysqli_fetch_array($result);
$amount = $row['amount'];
$response_code = $row['response_code'];
$response_desc = $row['response_desc'];
response($order_id, $amount, $response_code, $response_desc);
mysqli_close($con);
}
else {
response(NULL, NULL, 200,"No Record Found");
}
}
else {
response(NULL, NULL, 400,"Request is invalid");
}
function response($order_id,$amount,$response_code, $response_desc) {
$response['order_id'] = $order_id;
$response['amount'] = $amount;
$response['response_code'] = $response_code;
$response['response_desc'] = $response_desc;
$json_response = json_encode($response);
echo $json_response;
}
?>
Đoạn code trên sẽ chấp nhận yêu cầu GET và trả về kết quả đầu ra ở định dạng JSON.
Bây giờ bạn có thể nhận được đầu ra như dưới đây:
PHP Data Objects (PDO) là một lớp truy xuất cơ sở dữ liệu cung cấp một phương pháp thống nhất để làm việc với nhiều loại cơ sở dữ liệu khác nhau. Khi làm việc với PDO bạn sẽ không cần phải viết các câu lệnh SQL cụ thể mà chỉ sử dụng các phương thức mà PDO cung cấp, giúp tiết kiệm thời gian và làm cho việc chuyển đổi Hệ quản trị cơ sở dữ liệu trở nên dễ dàng hơn, chỉ đơn giản là thay đổi Connection String (chuỗi kết nối CSDL).
Bạn chỉ cần nắm rõ API mà PDO cung cấp là có thể làm việc được với nhiều Hệ quản trị cơ sở dữ liệu khác nhau như MySQL, SQLite, PostgreSQL, Microsoft SQL Server,... và có thể dễ dàng chuyển đổi chúng.
GET | POST |
---|---|
Phương thức GET dùng để yêu cầu dữ liệu từ một nguồn cụ thể | Phương thức POST dùng để gửi dữ liệu đến server như một package trong một giao tiếp riêng biệt với script xử lý |
Dữ liệu được gửi dưới dạng tham số URL là chuỗi các cặp tên-giá trị được phân tách bằng dấu và (&) | Dữ liệu được gửi trong POST sẽ không hiện trong URL |
Phương thức GET không thể được dùng để gửi dữ liệu nhị phân như hình ảnh hoặc tài liệu word | Phương thức POST có thể được sử dụng để gửi ASCII cũng như dữ liệu nhị phân như hình ảnh và tài liệu văn bản |
Không được sử dụng phương pháp này nếu bạn có bất kỳ thông tin nhạy cảm nào như mật khẩu được gửi đến server | Thông tin nhạy cảm có thể được gửi bằng phương pháp này |
Nó có thể được sử dụng để gửi form mà người dùng có thể đánh dấu kết quả | Không thể đánh dấu các submission bằng form với POST |
Bạn chỉ có thể sử dụng phương pháp này cho dữ liệu không an toàn | Dữ liệu được gửi qua phương thức này được bảo mật |
Phương thức GET không an toàn vì các tham số có thể được lưu trữ trong log server web hoặc lịch sử trình duyệt | Phương pháp POST an toàn hơn GET vì các tham số không được lưu trữ trong log server web hoặc lịch sử trình duyệt |
Trong PHP, kiểu gợi ý - type hinting, được sử dụng để chỉ định kiểu dữ liệu mong đợi (mảng, đối tượng, interface, v.v.) cho một đối số trong khai báo hàm. Nó đã được giới thiệu trong PHP5.
Bất cứ khi nào hàm được gọi, PHP sẽ kiểm tra xem các đối số có thuộc kiểu người dùng mong muốn hay không. Nếu đối số không thuộc kiểu được chỉ định, sẽ hiển thị lỗi và chương trình sẽ không thực thi.
Nó hữu ích trong việc tổ chức code tốt hơn và cải thiện thông báo lỗi.
//sendEmail() function argument $email is type hinted of Email Class. It means to call this function you must have to pass an email object otherwise an error is generated.
<?php
function sendEmail (Email $email)
{
$email->send();
}
?>
Để chấm dứt việc thực thi script trong PHP, hàm exit()
được sử dụng. Nó là một hàm có sẵn để xuất ra một thông báo và sau đó kết thúc script hiện tại.
Thông báo mà bạn muốn hiển thị được chuyển dưới dạng tham số cho hàm exit()
. Việc kết thúc script sẽ được thực hiện bởi hàm này sau khi hiển thị thông báo. Nó là một tên bí danh của hàm die()
. Nó không trả lại bất kỳ giá trị nào.
Cú pháp: exit(mesage)
Trong đó message là một tham số được truyền dưới dạng một đối số. Nó xác định một thông báo hoặc trạng thái.
Ví dụ:
<?php
$site = "https://www.interviewbit.com//";
fopen($site,"r")
or exit("Unable to connect to $site");
?>