导航:首页 > 方法技巧 > thinkphp如何调用方法调用

thinkphp如何调用方法调用

发布时间:2022-06-20 12:51:45

Ⅰ thinkphp中控制器里的方法是怎么调用的

a方法调用b方法
public function a(){
$this->b();
}
public function b(){
echo '这是B方法';
}

Ⅱ thinkphp url怎么调用公共方法

公共方法放进application/common/common的funciton.php中,用的时候直接象内置方法一样调用就行了

Ⅲ thinkphp3.1怎么调用模型里面的方法

可能我没有表述明确,我再详细的说明一下。比如已有一个零件模型A,现在要新建一个零件B,其为零件A的一个改型,B与A的差别仅仅在于多了一个小孔,这时候,如果重新按照A的建立过程在B中重建特征,无疑很浪费时间,并且B作为A的一个改型,如果重建所有A的特征,则将来要修改A的某些参数的时候,也要将B的相对参数手工修改,增加了模型出错的隐患。所以,很自然的,会想到有这种用法,就是将零件A的实体(非特征)作为一个外部实体参照完全的调用进零件B(类似调用一个IGES,STEP等格式的实体),然后在B中建立独属于B的特征。这样,将来如果A被修改,则B中只要重新生成一下A的参照实体,则B也被同步修改。以前我是用PROE的,用过PROE的弟兄应该知道有一个外部模型参考的命令,想必CATIA中应该也有类似的功能,怎样实现??PUBLICATION功能,我也看过,不过只知道怎样发布,那么如何在新零件中调用?

Ⅳ thinkPHP怎么调用函数

thinkphp模版调用函数方法
{变量|函数1|函数2|函数3=参数1,参数2,参数3,###}
###为第4个参数,代表变量替换为第4个参数
举例:
{$username|substr=0,3}取标题中前3个字符
{$times|date='Y-m-d H:i:s',###}将times时间戳转换为日期格式
==================================================
冒号执行函数的用法:输出方法并执行返回值
{:U('user/insert')}
举例:
{:time()} 会输出当前日期格式 ,会被解析成 <?php echo time(); ?>
==================================================
波浪线函数的用法:执行方法但不输出
{~function()}
举例:
{~substr("aaaaaaa",3)} 执行后不会输出,会背解析成 <?php substr ?>
============================================
{$Think.get.url中get过来的参数}
{$Think.server.server中的变量}
{$Think.session.session中的id|md5} 如果需要的话还可以对值MD5一下
{$Think.cookie.cookie中的id}
=============
{$Think.config.db_host} 读取config中的配置信息
{($title)?($title):'当前没有值'} 当前参数若没有值,则显示后面的描述
==================
<switch name="">
<case value="1">aaaaaa</case>
<case value="2">bbbbbbbbb</case>
<default />没有数据
</switch>
===============
<eq name="a" value="3">a等于3<else />a不等于3</eq>
<eq name="a|strlen" value="1">a的长度等于1<else />a长度不等于1</eq>
=================
<in name="a" value="1,2,3,4">变量a值在1,2,3,4范围内就打印</in>
<notin name="a" value="1,2,3,4">变量a值不在1,2,3,4范围内就打印</notin>
或者用
<range name="a" value="1,2,3,4" type="in">a在1,2,3,4范围内</range> //type改为notin就是不在,该方法可替代in和notin
===============
<empty name="a">a变量为空</empty>
<notempty name="a">a变量不为空</notempty>

Ⅳ thinkphp config怎么调用函数

{变量|函数1|函数2|函数3=参数1,参数2,参数3,###}

###为第4个参数,代表变量替换为第4个参数

举例:

{$username|substr=0,3}取标题中前3个字符

{$times|date='Y-m-d H:i:s',###}将times时间戳转换为日期格式

==================================================

冒号执行函数的用法:输出方法并执行返回值

{:U('user/insert')}

举例:

{:time()} 会输出当前日期格式 ,会被解析成 <?php echo time(); ?>

==================================================

波浪线函数的用法:执行方法但不输出

{~function()}

举例:

{~substr("aaaaaaa",3)} 执行后不会输出,会背解析成 <?php substr ?>

============================================

{$Think.get.url中get过来的参数}

{$Think.server.server中的变量}

{$Think.session.session中的id|md5} 如果需要的话还可以对值MD5一下

{$Think.cookie.cookie中的id}

=============

{$Think.config.db_host} 读取config中的配置信息

{($title)?($title):'当前没有值'} 当前参数若没有值,则显示后面的描述

==================

<switch name="">

<case value="1">aaaaaa</case>

<case value="2">bbbbbbbbb</case>

<default />没有数据

</switch>

===============

<eq name="a" value="3">a等于3<else />a不等于3</eq>

<eq name="a|strlen" value="1">a的长度等于1<else />a长度不等于1</eq>

=================

<in name="a" value="1,2,3,4">变量a值在1,2,3,4范围内就打印</in>

<notin name="a" value="1,2,3,4">变量a值不在1,2,3,4范围内就打印</notin>

或者用

<range name="a" value="1,2,3,4" type="in">a在1,2,3,4范围内</range> //type改为notin就是不在,该方法可替代in和notin

===============

<empty name="a">a变量为空</empty>

<notempty name="a">a变量不为空</notempty>

Ⅵ thinkphp中一个方法怎样调用另一个方法里面的变量

把这个function detail(){}里面有个$A的值设置成全局变量,或者是存进session数组里面,然后在function showmenu()这个函数中可以调用这个$A的值了。

Ⅶ 如何实现thinkphp中Db类的方法调用风格

我们先来看下官网对listen的说明:如果开启数据库的调试模式的话,你可以对数据库执行的任何SQL操作进行监听。这无疑很方便我们进行增删改查的调试,以及通过执行的时间进行有效的sql优化,

友情提示:数据库监听要写在执行sql语句的前面,因为只有在调用Db::listen之后的SQL语句才会被监听,调用之前的语句不会被监听。至于为什么我们后面讲!

使用如下方法:

123456Db::listen(function($sql,$time,$explain){//记录SQLecho$sql.'['.$time.'s]';//查看性能分析结果mp($explain);});

有很多小伙伴疑问该方法应该放在哪里?使用之后为什么没有效果,很可能就是提示上所说的那样了,那么接下来我们简单分析一下这个方法!

1、从Db::listen(),可以看出listen是Db中的一个静态方法,那么我们就去找db类

2、从Db类中没有找到该方法,但是我们从use thinkdbConnection可以看出,引入了Connection类,我们在这个类找一下这个方法!

12345678910/***监听SQL执行*@accesspublic*@paramcallable$callback回调方法*@returnvoid*/publicfunctionlisten($callback){self::$event[]=$callback;}

3、event 保存我们传入的回调方法

4、在看下面这2个方法

0414243444546/***数据库调试记录当前SQL及分析性能*@accessprotected*@paramboolean$start调试开始标记true开始false结束*@paramstring$sql执行的SQL语句留空自动获取*@returnvoid*/protectedfunctiondebug($start,$sql=''){if(!empty($this->config['debug'])){//开启数据库调试模式if($start){Debug::remark('queryStartTime','time');}else{//记录操作结束时间Debug::remark('queryEndTime','time');$runtime=Debug::getRangeTime('queryStartTime','queryEndTime');$sql=$sql?:$this->getLastsql();$log=$sql.'[RunTime:'.$runtime.'s]';$result=[];//SQL性能分析if($this->config['sql_explain']&&0===stripos(trim($sql),'select')){$result=$this->getExplain($sql);}//SQL监听$this->trigger($sql,$runtime,$result);}}}protectedfunctiontrigger($sql,$runtime,$explain=[]){if(!empty(self::$event)){foreach(self::$eventas$callback){if(is_callable($callback)){call_user_func_array($callback,[$sql,$runtime,$explain]);}}}else{//未注册监听则记录到日志中Log::record('[SQL]'.$sql.'[RunTime:'.$runtime.'s]','sql');if(!empty($explain)){Log::record('[EXPLAIN:'.var_export($explain,true).']','sql');}}}

5、当我们执行了sql语句,就会触发会调用debug方法将执行日志写入日志文件中,同事调用trigger方法,如果我们最开始已经传入了回调方法,也就是

1self::$event

不为空,(说明我们在执行sql语句之前就已经设置了监听)我们将调用我们的回调函数!

1call_user_func_array

总结:在执行sql语句之前我们需要先设置监听,这就是为什么要把Db::listen()写在执行sql语句的前面!

下面我们来看下实际的效果:

(){Db::listen(function($sql,$time,$explain){//记录SQLecho$sql.'['.$time.'s]';//查看性能分析结果mp($explain);});//Getdatabasedoncolumns,执行sql语句foreach($channelas$v)$list[$v['id']]=GetData::getData('news',"channel_id={$v['id']}andstatus=2",'id,title,author,create_time,channel_id,file_path','order_bydesc','0,5');returnview('expo',['list'=>$list]);}

效果图:

Ⅷ thinkphp3.2怎么调用另一个目录里的方法

-- 前台使用了bootstrap框架技术,美化页面效果很显着(接下来计划有时间总结下bootstrap);并且应用HTML语义化文章结构,便于搜索引擎查找。

-- 后台打算使用ThinkPHP框架技术,这样可以使整体架构是MVC模式,结构化和模块化项目,并且使页面的html页码和php代码分离。

-- 最后计划实现页面的静态化,方便吸引搜索引擎爬虫的曝光率。

后台应用TP框架:

1)路径问题

由于TP框架是MVC架构,原理跟smaty模板的一样,contraller调用view下的模板,将模板html页面替换成php,然后包含到contraller下的控制页面,并且缓存在缓存夹cache中,访问contraller时会自动定位到cache下的缓存php文件。这样就引出了路径的问题,模板view下的相对路径需要些contraller的相对路径,建议用绝对路径。
介绍几个系统常量:
网站根目录地址 __ROOT__ 路径为根目录 /
当前路径下 __URL__
公共区: __PUBLIC__ 路径为 /Public/
当前应用入口 __APP__
还可以自己定义路径变量,方便项目开发。

例子:建议使用绝对路径代替相对路径

<link rel="stylesheet" href="__PUBLIC__/css/bootstrap.css"> 代替<link rel="stylesheet" href="../../Public/css/bootstrap.css">

<img src="__ROOT__/admin/Home/View/Public/images/logo.png"/>代替 <img src="../../../../admin/Home/View/Public/images/logo.png"/>

2)数据库的连接展示,例子效果如下:

(1)ThinkPHP/Conf/conversation.php中配置数据库连接参数:

/* 数据库设置 */
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => 'localhost', // 服务器地址
'DB_NAME' => 'yanhui', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' => '', // 端口

(2)Contraller中新建控制news页面NewsContrallor:

<?php
namespace Home\Controller;
use Think\Controller;
class NewsController extends Controller {
public function index(){
$user=M('news');
$this->rows=$user->order('id')->select();
$this->display();
}
public function add(){
$this->display();
}
public function insert(){
$this->display();
}
public function delete(){
$this->display();
}
public function edit(){
$this->display();
} public function update(){
$this->display();
}
}

(3)View下新建模板页面News/index.html(用了bootstrap展示前端)

<div class="container">
<div class="panel panel-primary">
<div class="panel-heading">新闻展示</div>
<div class="panel-body">
<table class="table table-bordered table-striped">
<tr>
<th>id</th>
<th>标题</th>
<th>概要</th>
<th>上墙</th>
<th>时间</th>
<th>栏目</th>
</tr>
<volist name='rows' id='row'>
<tr>
<td>{$row.id}</td>
<td>{$row.title}</td>
<td>{$row.abstract}</td>
<td>{$row.shelf}</td>
<td>{$row.regtime|date='Y-m-d',###}</td>
<td>{$row.newsclassId}</td>
</tr>
</volist>
</table>
</div>
</div>
</div>

(根据这个例子,依次实现news模块的增删改查方法)

Ⅸ thinkphp怎么调用另一个目录里的方法

U("app/bfile/方法名");
U("admin/afile/方法名")

Ⅹ ThinkPHP3.2中如何使用类函数静态调用

common/里建一个 common.php文件。里面存函数,这个文件是默认加载的,如果不是 common.php 就得手动加载。

直接建一个 common.php 文件写在里面。记得删除缓存。

可以写进ThinkPHP/Common/functions.php这个里面,也可以ThinkPHP/Common/extend.php,但需要加载
加载的话需要理清他的架构,thinkphp加载有很简单的自定义的一套方法,TP中调用自定义的函数库应该在项目的config.php里配置

阅读全文

与thinkphp如何调用方法调用相关的资料

热点内容
如何学初三英语最有效的方法 浏览:493
快速简单安全的减肥方法 浏览:933
常用硫酸制备方法 浏览:815
非淋性前列腺炎的治疗方法 浏览:678
过滤烟嘴使用方法 浏览:551
脸部红血丝的治疗方法 浏览:329
双面羊绒的边如何缝制方法视频 浏览:754
脑血管堵塞手脚无力用什么方法治 浏览:534
贵州学习方法哪里学 浏览:408
变压器串连接方法 浏览:399
爱卫唾液试纸使用方法 浏览:625
鱼钩鱼线鱼竿的连接方法 浏览:246
一建各科内各种计算方法编制方法 浏览:577
葛藤蔓的种植方法 浏览:506
小米平板的照片在哪里设置方法 浏览:692
毛囊增生怎么治疗方法 浏览:569
99999999用简便方法计算 浏览:333
蔚来汽车倒车刹车异响解决方法 浏览:176
蝗虫飞机的制作方法简单 浏览:949
预防治疗近视的方法 浏览:61