多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[Xunsearch PHP-SDK](http://www.xunsearch.com) v1.4.8 API 参考文档 # XSComponent [All Packages](#)| [方法(函数)](#) | 包 | [XS](#) | |-----|-----| | 继承关系 | class XSComponent | | 子类 | [XS](#), [XSCommand](#), [XSServer](#) | | 版本 | 1.0.0 | | 源代码 | [sdk/php/lib/XS.class.php](https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XS.class.php) | XS 组件基类封装一些魔术方法, 以实现支持模拟属性 模拟属性通过定义读取函数, 写入函数来实现, 允许两者缺少其中一个这类属性可以跟正常定义的属性一样存取, 但是这类属性名称不区分大小写. 例: ~~~ $a = $obj->text; // $a 值等于 $obj->getText() 的返回值 $obj->text = $a; // 等同事调用 $obj->setText($a) ~~~ ### Public 方法 [隐去继承来的方法](#) | 名称 | 描述 | 定义于 | |-----|-----|-----| | [__get()](#) | 魔术方法 __get | XSComponent | | [__isset()](#) | 魔术方法 __isset | XSComponent | | [__set()](#) | 魔术方法 __set | XSComponent | | [__unset()](#) | 魔术方法 __unset | XSComponent | ### 方法明细 __get()方法 <table class="summaryTable"><tr><td colspan="3"><div class="signature2">public mixed <b>__get</b>(string $name)</div></td></tr><tr><td class="paramNameCol">$name</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">属性名称</td></tr><tr><td class="paramNameCol">{return}</td> <td class="paramTypeCol">mixed</td> <td class="paramDescCol">属性值</td></tr></table> **源码:**[sdk/php/lib/XS.class.php#L182](https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XS.class.php#L182) (**[显示](#)**) `public function __get($name) {     $getter = 'get' . $name;     if (method_exists($this, $getter)) {         return $this->$getter();     }     // throw exception     $msg = method_exists($this, 'set' . $name) ? 'Write-only' : 'Undefined';     $msg .= ' property: ' . get_class($this) . '::$' . $name;     throw new XSException($msg); }` 魔术方法 __get取得模拟属性的值, 内部实际调用 getXxx 方法的返回值 __isset()方法 <table class="summaryTable"><tr><td colspan="3"><div class="signature2">public bool <b>__isset</b>(string $name)</div></td></tr><tr><td class="paramNameCol">$name</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">属性名称</td></tr><tr><td class="paramNameCol">{return}</td> <td class="paramTypeCol">bool</td> <td class="paramDescCol">若存在为 true, 反之为 false</td></tr></table> **源码:**[sdk/php/lib/XS.class.php#L221](https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XS.class.php#L221) (**[显示](#)**) `public function __isset($name) {     return method_exists($this, 'get' . $name); }` 魔术方法 __isset判断模拟属性是否存在并可读取 __set()方法 <table class="summaryTable"><tr><td colspan="3"><div class="signature2">public void <b>__set</b>(string $name, mixed $value)</div></td></tr><tr><td class="paramNameCol">$name</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">属性名称</td></tr><tr><td class="paramNameCol">$value</td> <td class="paramTypeCol">mixed</td> <td class="paramDescCol">属性值</td></tr></table> **源码:**[sdk/php/lib/XS.class.php#L202](https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XS.class.php#L202) (**[显示](#)**) `public function __set($name, $value) {     $setter = 'set' . $name;     if (method_exists($this, $setter)) {         return $this->$setter($value);     }     // throw exception     $msg = method_exists($this, 'get' . $name) ? 'Read-only' : 'Undefined';     $msg .= ' property: ' . get_class($this) . '::$' . $name;     throw new XSException($msg); }` 魔术方法 __set设置模拟属性的值, 内部实际是调用 setXxx 方法 __unset()方法 <table class="summaryTable"><tr><td colspan="3"><div class="signature2">public void <b>__unset</b>(string $name)</div></td></tr><tr><td class="paramNameCol">$name</td> <td class="paramTypeCol">string</td> <td class="paramDescCol">属性名称</td></tr></table> **源码:**[sdk/php/lib/XS.class.php#L231](https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XS.class.php#L231) (**[显示](#)**) `public function __unset($name) {     $this->__set($name, null); }` 魔术方法 __unset删除、取消模拟属性, 相当于设置属性值为 null Copyright © 2008-2011 by [杭州云圣网络科技有限公司](http://www.xunsearch.com) All Rights Reserved.