ThinkPHP ~function()和function()方法和U方法

1、執行函數並輸出返回值
格式:{:function(…)} 
例如,輸出U函數的返回值:

{:U('User/insert')}

編譯後的PHP代碼是

<?php echo U('User/insert');?>

2、執行函數但不輸出
格式:{~function(…)} 
例如,調用say_hello函數:

{~say_hello('ThinkPHP')}

編譯後的PHP代碼是:

<?php say_hello('ThinkPHP');?

大U函數的使用方法

U方法用於完成對URL地址的組裝,特點在於可以自動根據當前的URL模式和設置生成對應的URL地址,格式爲:

U('地址','參數','僞靜態','是否跳轉','顯示域名');

在模板中使用U方法而不是固定寫死URL地址的好處在於,一旦你的環境變化或者參數設置改變,你不需要更改模板中的任何代碼。

在模板中的調用格式需要採用 {:U('地址', '參數'…)} 的方式

基本用法

U方法的用法示例:

U('User/add') // 生成User模塊的add操作地址

複製代碼

也可以支持分組調用:

U('Home/User/add') // 生成Home分組的User模塊的add操作地址

複製代碼

當然,也可以只是寫操作名,表示調用當前模塊的

U('add') // 生成當前訪問模塊的add操作地址

複製代碼

除了分組、模塊和操作名之外,我們也可以傳入一些參數:

U('Blog/read?id=1') // 生成Blog模塊的read操作 並且id爲1的URL地址

複製代碼

U方法的第二個參數支持傳入參數,支持數組和字符串兩種定義方式,如果只是字符串方式的參數可以在第一個參數中定義,下面幾種方式都是等效的:

U('Blog/cate',array('cate_id'=>1,'status'=>1))

U('Blog/cate','cate_id=1&status=1')

U('Blog/cate?cate_id=1&status=1')

複製代碼

但是不允許使用下面的定義方式來傳參數:

U('Blog/cate/cate_id/1/status/1')

複製代碼

根據項目的不同URL設置,同樣的U方法調用可以智能地對應產生不同的URL地址效果,例如針對:

U('Blog/read?id=1')

複製代碼

這個定義爲例。

如果當前URL設置爲普通模式的話,最後生成的URL地址是:

http://serverName/index.php?m=Blog&a=read&id=1

複製代碼

如果當前URL設置爲PATHINFO模式的話,同樣的方法最後生成的URL地址是:

http://serverName/index.php/Blog/read/id/1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章