導航:首頁 > 方法技巧 > 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如何調用方法調用相關的資料

熱點內容
彎管計算方法 瀏覽:100
蕁麻疹快速治療方法是什麼 瀏覽:100
手機去內存方法 瀏覽:63
小米note3音樂在哪裡設置方法 瀏覽:85
柚子茶製作方法圖片 瀏覽:822
心理學與治療的研究方法 瀏覽:688
學生在校時間的計算方法 瀏覽:534
大數字相加的簡便運算方法 瀏覽:986
研究學霸學習的方法 瀏覽:649
寫出常用的煮漿方法及特點 瀏覽:186
如何學初三英語最有效的方法 瀏覽:496
快速簡單安全的減肥方法 瀏覽:933
常用硫酸制備方法 瀏覽:817
非淋性前列腺炎的治療方法 瀏覽:679
過濾煙嘴使用方法 瀏覽:552
臉部紅血絲的治療方法 瀏覽:331
雙面羊絨的邊如何縫制方法視頻 瀏覽:755
腦血管堵塞手腳無力用什麼方法治 瀏覽:536
貴州學習方法哪裡學 瀏覽:410
變壓器串連接方法 瀏覽:400