Управление указателями
О том, как управлять указателями
VoidCore::removeObjects
void VoidCore::removeObjects (int ...$selectors) — удаление объектов
Аргумент
Описание
int ...$selectors
Список указателей на объекты
Пример:
<?php
$form = VoidCore::createObject ('System.Windows.Forms.Form');
$button = VoidCore::createObject ('System.Windows.Forms.Button');
$msgbox = VoidCore::getClass ('System.Windows.Forms.MessageBox');
VoidCore::removeObjects ($form, $button, $msgbox);
VoidCore::destructObject
bool VoidCore::destructObject (int $selector) — удаляет объект если он больше не используется в коде и возвращает статус удаления
Аргумент
Описание
int $selector
Указатель на объект
Пример:
<?php
$form = VoidCore::createObject ('System.Windows.Forms.Form');
$button = VoidCore::createObject ('System.Windows.Forms.Button');
# Устанавливаем кнопку $button на форму $form
# Метод setProperty см. ниже*
VoidCore::setProperty ($button, 'Parent', $form);
var_dump (VoidCore::destructObject ($form)); // false
var_dump (VoidCore::destructObject ($button)); // false
# Удаляем кнопку из-за которой нельзя удалить форму (и наоборот)
VoidCore::removeObjects ($button);
var_dump (VoidCore::destructObject ($form)); // true
VoidCore::objectExists
bool VoidCore::objectExists (int $selector) — проверяет, существует ли объект с данным указателем
Аргумент
Описание
int $selector
Указатель на объект
Пример:
<?php
$form = VoidCore::createObject ('System.Windows.Forms.Form');
var_dump (VoidCore::objectExists ($form)); // true
VoidCore::removeObjects ($form);
var_dump (VoidCore::objectExists ($form)); // false
VoidCore::getProperty
mixed VoidCore::getProperty (int $selector, string $propertyName) — получение свойства объекта
Аргумент
Описание
int $selector
Указатель на объект
mixed $propertyName
Название свойства
Если в качестве свойства была использована строка - VoidCore будет использовать её в качестве названия свойства. Возвращаемое значение будет автоматически приведено к нужному типу
Если вы хотите вернуть значение свойства определённого типа - вы можете использовать конструкцию ['название свойства', VC_ТИП]
. К примеру: ['Width', VC_INT]
. Полный список доступных типов см. в "Работа с типами"
Пример:
<?php
$button = VoidCore::createObject ('System.Windows.Forms.Button');
// Вернёт "75" (ширина кнопки по умолчанию)
echo VoidCore::getProperty ($button, 'Width');
// Тоже самое, что и выше*
echo VoidCore::getProperty ($button, ['Width', VC_INT]);
VoidCore::setProperty
void VoidCore::setProperty (int $selector, string $propertyName, mixed $value) — установка свойства объекта
Аргумент
Описание
int $selector
Указатель на объект
string $propertyName
Название свойства
mixed $value
Значение свойства
Пример:
<?php
$form = VoidCore::createObject ('System.Windows.Forms.Form');
$button = VoidCore::createObject ('System.Windows.Forms.Button');
VoidCore::setProperty ($button, 'Parent', $form);
VoidCore::setProperty ($button, 'Text', 'Click Me!');
VoidCore::getField
mixed VoidCore::getField (int $selector, mixed $fieldName) — получение поля объекта
Аргумент
Описание
int $selector
Указатель на объект
mixed $fieldName
Название поля
Пример:
<?php
$IPAddress = VoidCore::getClass ('System.Net.IPAddress');
# Метод callMethod см. ниже*
$field = VoidCore::getField ($IPAddress, 'Any');
$text = VoidCore::callMethod ($field, 'ToString');
// Выведет указатель на объект значения поля
echo $field;
// Выведет текстовое представление значения поля (0.0.0.0?)
echo $text;
VoidCore::setField
void VoidCore::setField (int $selector, string $fieldName, mixed $value) — установка поля объекта
Аргумент
Описание
int $selector
Указатель на объект
string $fieldName
Название поля
mixed $value
Значение поля
Пример:
<?php
// TODO
VoidCore::callMethod
mixed VoidCore::callMethod (int $selector, mixed $methodName, ...$args) — вызов метода объекта
Аргумент
Описание
int $selector
Указатель на объект
mixed $methodName
Название метода
...$args
Аргументы метода
Пример:
<?php
$msgbox = VoidCore::getClass ('System.Windows.Forms.MessageBox');
VoidCore::callMethod ($msgbox, 'Show', 'Hello, World!', 'Test');

Last updated
Was this helpful?