codecamp

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对象的子节点。如果$selectornull,所有的孩子都会退回。如果$selector开始%$selector则返回属于该类别的所有子项否则,返回所有被instanceof命名的类的$selector子项。
- getFirstChild(?string $selector = null):): ?XHPChild返回XHP对象的第一个子节点。如果$selectornull,则返回真正的第一个孩子。否则,返回匹配$selector(或null的第一个小孩
- getLastChild(?string $selector = null):): ?XHPChild返回XHP对象的最后一个子节点。如果$selectornull,返回真正的最后一个孩子。否则,返回匹配$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>
XHP:接口
XHP:扩展
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }