XHP:方法
记住从XHPRoot
接口派生的所有XHP对象,实现的对象XHPRoot有一些可以调用的公共方法。
XHP对象方法
-方法 | 描述 |
---|---|
- appendChild(mixed $child): this | 将$ child添加到XHP对象的子数组的末尾。如果$ child是一个array ,数组中的每个项目将被追加。 |
- categoryOf(string $cat): bool | 返回XHP对象是否属于所命名的类别 $cat |
- getAttribute(string $name): mixed | 返回XHP对象的属性名称$name 。如果属性未设置,null 则返回,除非属性是必需的,在这种情况下XHPAttributeRequiredException 抛出。如果属性未声明或不存在,则XHPAttributeNotSupportedException 抛出该属性。如果您正在阅读的属性是静态的,请使用$this->:name 样式语法,以获得更好的类型检查器覆盖率。 |
- getAttributes(): Map<string, mixed> | 作为克隆副本返回XHP对象的属性数组。 |
- getChildren(?string $selector = null): Vector<XHPChild> | 返回XHP对象的子节点。如果$selector 是null ,所有的孩子都会退回。如果$selector 开始% ,$selector 则返回属于该类别的所有子项。否则,返回所有被instanceof 命名的类的$selector 子项。 |
- getFirstChild(?string $selector = null):): ?XHPChild | 返回XHP对象的第一个子节点。如果$selector 是null ,则返回真正的第一个孩子。否则,返回匹配$selector (或null )的第一个小孩。 |
- getLastChild(?string $selector = null):): ?XHPChild | 返回XHP对象的最后一个子节点。如果$selector 是null ,返回真正的最后一个孩子。否则,返回匹配$selector (或null )的最后一个小孩。 |
- isAttributeSet(string $name): bool | 返回是否设置了具有名称的属性$name 。 |
- prependChild(mixed $child): this | 将$ child添加到XHP对象的子数组的开头。如果$ child是一个array ,数组中的每个项目将被追加。 |
- replaceChildren(...): this | 将此XHP对象的所有子代替为传递给此方法的可变子数。 |
- setAttribute(string $name, mixed $val): this | 设置名为XHP对象属性的值$name 。将根据属性的类型检查该值,并且如果它们不匹配,XHPInvalidAttributeException 则抛出该值。如果属性未声明或不存在,则XHPAttributeNotSupportedException 抛出该属性。 |
- setAttributes(KeyedTraversable<string, mixed> $attrs): this | 用XHP对象的属性数组替换$attrs 。相同的错误可以应用于setAttribute() 。 |
<?hh
function xhp_object_methods_build_list(Vector<string> $names): XHPRoot {
$list = <ul id="names" />;
foreach ($names as $name) {
$list->appendChild(<li>{$name}</li>);
}
return $list;
}
function xhp_object_methods_run(): void {
$names = Vector {'Sara', 'Fred', 'Josh', 'Scott', 'Paul', 'David', 'Matthew'};
$list = xhp_object_methods_build_list($names);
foreach ($list->getChildren() as $child) {
echo <ul>{$child}</ul> . "\n";
}
echo <ul>{$list->getFirstChild()}</ul> . "\n";
echo <ul>{$list->getLastChild()}</ul>. "\n";
foreach ($list->getAttributes() as $attr) {
echo <ul><li>{$attr}</li></ul> . "\n";
}
echo <ul><li>{$list->getAttribute('id')}</li></ul> . "\n";
}
xhp_object_methods_run();
Output
<ul><li>Sara</li></ul>
<ul><li>Fred</li></ul>
<ul><li>Josh</li></ul>
<ul><li>Scott</li></ul>
<ul><li>Paul</li></ul>
<ul><li>David</li></ul>
<ul><li>Matthew</li></ul>
<ul><li>Sara</li></ul>
<ul><li>Matthew</li></ul>
<ul><li>names</li></ul>
<ul><li>names</li></ul>