[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 授權許可證