Type hinting trong PHP
Khái niệm type hinting xuất hiện từ phiên bản php 5.1, “ép” người sử dụng hàm phải truyền vào kiểu dữ liệu đúng với ý đồ của người viết hàm
Type hinting hiện tại hỗ trợ 2 kiểu dữ liệu: object và array. Kiểu int và string chưa được hỗ trợ.
Xét ví dụ sau:
<?php // An example class class MyClass { /** * A test function * * First parameter must be an object of type OtherClass */ public function test(OtherClass $otherclass) { echo $otherclass->var; } /** * Another test function * * First parameter must be an array */ public function test_array(array $input_array) { print_r($input_array); } } // Another example class class OtherClass { public $var = 'Hello World'; } ?> |
- Hàm test yêu cầu tham số phải có kiểu dữ liệu là instance của OtherClass
- Hàm test_array yêu cầu tham số truyền vào phải là một array
Chúng ta thử sử dụng: lỗi sẽ xảy ra nếu truyền sai kiểu dữ liệu
<?php // An instance of each class $myclass = new MyClass; $otherclass = new OtherClass; // Fatal Error: Argument 1 must be an object of class OtherClass $myclass->test('hello'); // Fatal Error: Argument 1 must be an instance of OtherClass $foo = new stdClass; $myclass->test($foo); // Fatal Error: Argument 1 must not be null $myclass->test(null); // Works: Prints Hello World $myclass->test($otherclass); // Fatal Error: Argument 1 must be an array $myclass->test_array('a string'); // Works: Prints the array $myclass->test_array(array('a', 'b', 'c')); ?> |
Trường hợp ta cho tham số 1 giá trị mặc định là NULL thì tham số truyền vào có thể là NULL hoặc không cần truyền tham số:
<?php /* Accepting NULL value */ function test(stdClass $obj = NULL) { } test(NULL); test(new stdClass); ?> |
4 Comments to “Type hinting trong PHP”
Post comment
Bài viết mới
- CakePHP version 1.3.12
- Tạo chuỗi ngẫu nhiên với 1 dòng code
- Kỹ thuật “bit field” trong phân quyền
- Làm việc với File và Folder
- CakePHP 1.3.8
- CakePHP 1.3.7 Released
- Ajax trong CakePHP
- Tạo và load file config trong CakePHP
- Làm site đa ngôn ngữ với CakePHP (Phần 1)
- CakePHP 1.3.6 and 1.2.9 released
- CakePHP 1.3.5 released
- Type hinting trong PHP
- CakePHP ra phiên bản mới 1.3.4
- Tích hợp Zend framework vào CakePHP
- Tạo virtual host trên local
- Sử dụng Acl trong cakephp – Phần 2
- Sử dụng Acl trong cakephp – Phần 1
- Sinh code tự động với cake console
- Tự động xóa record ở bảng con khi reocord ở bảng cha bị xóa
- Xác thực người dùng với component Auth
Thảo luận mới
- admin on Sử dụng session trong CakePHP
- admin on Sử dụng session trong CakePHP
- hanh on Sử dụng session trong CakePHP
- bich yen on Sử dụng session trong CakePHP
- admin on Sử dụng session trong CakePHP
- bich yen on Sử dụng session trong CakePHP
- bich yen on Sử dụng session trong CakePHP
- admin on Sử dụng Acl trong cakephp – Phần 1
- admin on Sử dụng session trong CakePHP
- Bich Yen on Sử dụng session trong CakePHP
TAG
1.3.2
1.3.3
ACL
app
AppController
autoRender
bindModel
calendar
chart
component
Configure
controller
core
created
cài đặt
encoding
google analytic
helper
image
layout
mail
model
modified
MVC
ofc
open flash chart
phpmailer
plugin
qui ước
render
save
saveAll
scaffold
session
text
thumnail
tinymce
tracker
trợ giúp
tổng quan
unbindModel
unicode
updated
useTable
utf8
Calendar
Lưu trữ
- September 2011 (3)
- July 2011 (1)
- March 2011 (1)
- February 2011 (1)
- November 2010 (4)
- October 2010 (1)
- September 2010 (2)
- August 2010 (9)
- July 2010 (9)
- June 2010 (22)
Blogroll
- Bakery
- Biển đảo Việt Nam
- CakePHP
- CakePHP Google Group
- CakePHP Manual
- CakePHP Questions
- Diễn đàn CakePHP VN
Thống kê
5 khách

admin

Cái này sử dụng trong trường hợp nào vậy bạn? Cho mình một số vd cụ thể đc hông
Hi bạn, cái type hinting này là để giúp cho việc lập trình dễ dàng hơn, giúp bạn sử dụng được auto complete của IDE (bộ soạn code) bên trong function… Khiến cho các thành phần của chương trình ràng buộc chặt chẽ hơn… Điều này rất quan trọng khi bạn code theo design patterns trong các dự án đòi hỏi sự chính xác và rõ ràng cao.
@admin: admin oy, blog này không hỗ trợ theo dõi nhỉ
có comment mới mà chẳng thấy mail qua.
Khái niệm type hinting xuất hiện từ phiên bản php 5.1, “ép” người sử dụng hàm phải truyền vào kiểu dữ liệu đúng với ý đồ của người viết hàm
Nhân thể nói về type hinting, xì pam một bài về IDE Auto Complete với CakePHP http://i-php.net/2011/05/m%E1%BA%B9o-m%E1%BB%B1c-v%E1%BB%9Bi-eclipse-pdt/