PHP 5 ����ʹ������Լ���������IJ�������ָ������Ϊ�����ں���ԭ������ָ��������֣����ӿڣ����飨PHP 5.1 �𣩻��� callable��PHP 5.4 �𣩡��������ʹ�� NULL ��Ϊ������Ĭ��ֵ����ô�ڵ��ú�����ʱ����Ȼ����ʹ�� NULL ��Ϊʵ�Ρ�
���һ�����ӿ�ָ��������Լ�����������е������ʵ��Ҳ����ˡ�
����Լ���������ڱ��������� int �� string��Traits Ҳ������
Example #1 ����Լ��ʾ��
<?php
//���������
class MyClass
{
/**
* ���Ժ���
* ��һ����������Ϊ OtherClass ���һ������
*/
public function test(OtherClass $otherclass) {
echo $otherclass->var;
}
/**
* ��һ�����Ժ���
* ��һ����������Ϊ����
*/
public function test_array(array $input_array) {
print_r($input_array);
}
}
/**
* ��һ����������Ϊ�ݹ�����
*/
public function test_interface(Traversable $iterator) {
echo get_class($iterator);
}
/**
* ��һ����������Ϊ�ص�����
*/
public function test_callable(callable $callback, $data) {
call_user_func($callback, $data);
}
}
// OtherClass �ඨ��
class OtherClass {
public $var = 'Hello World';
}
?>
�������õIJ����붨��IJ������Ͳ�һ��ʱ�����׳�һ���ɲ������������
<?php
// ������Ķ���
$myclass = new MyClass;
$otherclass = new OtherClass;
// ��������һ������������ OtherClass ���һ������
$myclass->test('hello');
// ��������һ����������Ϊ OtherClass ���һ��ʵ��
$foo = new stdClass;
$myclass->test($foo);
// ��������һ����������Ϊ null
$myclass->test(null);
// ��ȷ����� Hello World
$myclass->test($otherclass);
// ��������һ����������Ϊ����
$myclass->test_array('a string');
// ��ȷ���������
$myclass->test_array(array('a', 'b', 'c'));
// ��ȷ����� ArrayObject
$myclass->test_interface(new ArrayObject(array()));
// ��ȷ����� int(1)
$myclass->test_callable('var_dump', 1);
?>
����Լ����ֻ��������ij�Ա�����Ҳ��ʹ���ں����
<?php
// ���������
class MyClass {
public $var = 'Hello World';
}
/**
* ���Ժ���
* ��һ������������ MyClass ���һ������
*/
function MyFunction (MyClass $foo) {
echo $foo->var;
}
// ��ȷ
$myclass = new MyClass;
MyFunction($myclass);
?>
����Լ������ NULL ֵ��
<?php
/* ���� NULL ֵ */
function test(stdClass $obj = NULL) {
}
test(NULL);
test(new stdClass);
?>