[TOC]
## 内部函数
- 在编写系统函数或公用函数时,需要对内部函数代码进行编写
- 可根据自己的需要进行函数编写或调用
#### 数据配置(即ini.php)函数的调用
- 系统调用函数路径:/vendor/tphp/tphp/function
- 自定义调用函数路径:/html/function(在该路径添加或修改内部函数需更新缓存才生效)
设置文件/html/www/demo/system/ini/_init.php内容如下
```
<?php
return function (){
dump(
apcu(
[
['str_add_left', "Hello "],
['str_add_right', "! Are you ok ?"],
],
"TPHP"
)
);
dump(
apcu(
[
['*10'],
['-10'],
],
10
)
);
dump(
apcu(
[
['set', "2019-06-06"]
]
)
);
exit();
};
```
打开网址[http://demo.tphp.com/system/ini](http://demo.tphp.com/system/ini)获得如下效果![](/static/plugins/tphp/help/inner/ini.png)
- 调用函数遍历
打开网址[http://demo.tphp.com/system/ini/function](http://demo.tphp.com/system/ini/function)获得如下效果![](/static/plugins/tphp/help/inner/ini_function.png)
- 由此可以根据调用名称找到对应的文件调用路径
#### 自定义函数示例
设置文件/html/function/tphp/func.php内容如下
```
<?php
return function($data, $str=''){
return $data . $str;
};
```
设置文件/html/function/tphp/ini.php内容如下
```
<?php
return [
'name' => 'TPHP框架 - 快速开发',
'flag' => 'tphp',
'note' => 'TPHP欢迎函数',
'args' => ['字符串' => 'str']
];
```
设置文件/html/function/tphp/name内容如下
```
TPHP快速开发框架
```
设置文件/html/function/tphp/apcu/func.php内容如下
```
<?php
return function($data){
return $data . " APCU";
};
```
设置文件/html/function/tphp/apcu/ini.php内容如下
```
<?php
return [
'name' => 'TPHP_APCU',
'flag' => 'tphp_apcu'
];
```
设置文件/html/function/tphp/apcu/name内容如下
```
TPHP APCU 服务
```
设置文件/html/function/tphp/apcu/test/func.php内容如下
```
<?php
return function(){
return 'TPHP APCU TEST';
};
```
设置文件/html/function/tphp/apcu/test/ini.php内容如下
```
<?php
return [
'name' => 'TPHP_APCU测试',
'flag' => 'tphp_apcu_test'
];
```
设置文件/html/function/tphp/apcu/test/name内容如下
```
TPHP APCU 测试
```
更新缓存后,打开网址[http://demo.tphp.com/system/ini/function](http://demo.tphp.com/system/ini/function)获得如下效果![](/static/plugins/tphp/help/inner/ini_function1.png)
- 自定义函数层级不限制,意味着更灵活的定义内部函数
#### 自定义函数调用测试
设置文件/html/www/demo/system/ini/function/tphp/_init.php内容如下
```
<?php
return function (){
dump(
apcu(
[
['tphp', "欢迎使用TPHP快速开发框架"]
],
"TPHP >>> "
)
);
dump(
apcu(
[
['tphp_apcu']
],
"TPHP >>> "
)
);
dump(
apcu(
[
['tphp_apcu_test']
],
"TPHP >>> "
)
);
};
```
打开网址[http://demo.tphp.com/system/ini/function/tphp](http://demo.tphp.com/system/ini/function/tphp)获得如下效果![](/static/plugins/tphp/help/inner/ini_function_tphp.png)
#### 引用自定义公共函数
- 系统文件路径: /vendor/tphp/tphp/html/import
- 自定义文件路径/html/import(添加或修改文件无需更新缓存)
设置文件/html/import/Demo.php内容如下
```
<?php
class Demo {
function __construct($name = "", $value=""){
$this->name = $name;
$this->value = $value;
}
public function get($remark = ""){
return [
'name' => $this->name,
'value' => $this->value,
'remark' => $remark,
];
}
}
```
设置文件/html/www/demo/system/import/_init.php内容如下
```
<?php
return function (){
dump(
import('Demo', '示例程序', 'Hello TPHP!')->get('说明文档')
);
dump(
import('Demo', '第二个示例程序', 'Hello Laravel!')->get('代码框架')
);
$import = import('Demo', '先设置后赋值', 'Hello Everyone!');
dump(
$import->get('周星驰')
);
dump(
$import->get('刘德华')
);
exit();
};
```
打开网址[http://demo.tphp.com/system/import](http://demo.tphp.com/system/import)获得如下效果![](/static/plugins/tphp/help/inner/import.png)
- 公共函数不会自动加载,只有import()后才加载,并对象或函数只设置一次,所有多次调用不受影响
- 公共文件名Demo不要与原系统函数或方法名重复,否则会出错