[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.
- 权威指南
- 新手上路
- 最新主要变动
- 概述
- 关于 Xunsearch PHP-SDK
- 安装、升级
- 体验 demo 项目
- 开发规范
- 开发流程
- 了解基础对象
- 基础对象概述
- XS 项目
- XSException 异常
- XSDocument 文档
- XSIndex 索引管理
- XSSearch 搜索
- XSTokenizer 分词接口
- 编写项目配置文件
- 项目配置详解
- 自定义分词器
- 编写第一个配置文件
- 管理索引
- 索引概述
- 添加文档
- 更新、修改文档
- 删除文档
- 清空索引
- 平滑重建索引
- 使用索引缓冲区
- 自定义SCWS词库
- 使用搜索
- 搜索概述
- 构建搜索语句
- 获取搜索匹配结果
- 获取搜索匹配数量
- 获取热门搜索词
- 获取相关搜索词
- 搜索建议和纠错
- 按字段值分面搜索
- 使用辅助工具
- RequiredCheck 运行检测
- Indexer 索引管理器
- Quest 搜索测试工具
- SearchSkel 生成搜索代码
- IniWizzard 配置文件向导
- Logger 搜索日志管理
- 专题
- 同义词搜索功能
- 在SDK中使用SCWS分词
- API 指南
- XS
- XS
- XSCommand
- XSComponent
- XSDocument
- XSErrorException
- XSException
- XSFieldMeta
- XSFieldScheme
- XSIndex
- XSSearch
- XSServer
- XS.tokenizer
- XSTokenizer
- XSTokenizerFull
- XSTokenizerNone
- XSTokenizerScws
- XSTokenizerSplit
- XSTokenizerXlen
- XSTokenizerXstep
- XS.util
- XSCsvDataSource
- XSDataFilter
- XSDatabaseDataSource
- XSDebugFilter
- XSJsonDataSource
- XSUtil
- XS.util.db
- XSDatabase
- XSDatabaseMySQL
- XSDatabaseMySQLI
- XSDatabasePDO
- XSDatabasePDO_MySQL
- XSDatabasePDO_PgSQL
- XSDatabasePDO_SQLite
- XSDatabasePgSQL
- XSDatabaseSQLite
- XSDatabaseSQLite3
- XS.utilf
- XSDataSource
- 其它文档
- 关于 xunsearch
- 特色和优势
- Xunsearch 架构简图
- 下载 Xunsearch
- 商业服务与支持
- XunSearch 授权许可证