 |
���� ��� ������ ��� ����������� ��������� ���������� ������ zval-���������� �������. ��� �����
�������, ��� �������, ��� ��� zval-��������� �������� �� ������ ���������� � ����, �� � ������ �� ����� ��
���������� ������ Zend. ��������, � ����������� �� ����� ��������, ������� �
������� ����� ���� ������� � ������� ���������� ��������� ���-�������.
���������� ���� zval �������, �� ���������� ������������ ��������� ���-�������, ��������� ������ ���� ������ �� ��.
��� ����������� ������� ����� ������ ����������� ����������� copy.
������������ �opy ������ ������������ � ������, �������������� ����������
�������� ��� ����������� �������/����������� �����. ���� �� ����������� ������
� ����� �����, � ��� ������� ����������� �����������/overloa �������� "=",
������� ������ �������� �� ���������� ����������� ������ ��������/lvalue (����������
���������� ����� ����� ��������) ������� ��������/rvalue (�� �� ����� � ������ �������).
���������� �������� ���������� ������� �������� ������ �������� � ������
������������ ��� ���������� ������ ������� ������ ��������. � ����� �����
���������, ��� ��� �������� ������������ � ����� ��������, ��� ������� �����
���������� � lvalue � rvalue � �������� ����������. ��������� ����
�����������, ��� ����� ��������� �������� ��������������� ��� �������� "="
(������ ����������� ����� �����������).
����� �� ����� "������������ �����������" ���������� ��� zval-����������� ���. ����, � ������ � �������� ��� ����������� �����������
������������ ����������� ���� ��������� ���-�������, ����������� � �������
�������. ��� ����� ������ ��������������� ��������� ��������������� ������, � �.�.
Zend ������������ � ����� ��������, zend_copy_ctor() (���������� PHP-������������ ����
pval_copy_constructor()).
�������� ��������� ������������� �������� �������, ����������� ������� ��� ���
��������, �������������� ���, � ����� ������������ ��������:
zval *parameter;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", ¶meter) == FAILURE)
return;
}
// ����� ������������� parameter
// ������ �� ���������� ���������������� ���������:
*return_value == *parameter;
zval_copy_ctor(return_value); |
������ ����� ������� ��� ������ ���������. ����� (left out) �����������,
������, ���������� ��� ���������: ��������� ��� parameter ������������� ����������
(����������������) return_value. ������, ����� ���������� ����������� ����������, ���������� ����������� copy.
����������� copy �������� ��������������� � ��������������� ����������, �
������������ return-���������� �������� FAILURE ��� ������� � SUCCESS ��� ������.
���� � ���� ������� �������� ����� ������������ copy, � parameter, � return_value
����� ��������� �� ���� � �� �� ���������� ������, ��� ��������, ��� return_value ����� ������������ �������������� ������� �� �� �� ����� ��������� ������. ���
�� �� �������� ��������� � ������, �� ������� ��������� parameter, return_value ����� ���� ��������. ����� �������, ����� ������� ������ �����, ������
������������ ����������� copy. ��������� ������������ copy � Zend API, ���������� zval_dtor(), ��������� ��������������� ������������ ��������.
|  |