導航:首頁 > 編程語言 > php文件定義函數

php文件定義函數

發布時間:2022-07-23 13:01:00

Ⅰ 在php代碼中變數和函數是如何定義的

變數的定義 $符號+變數名,如 $a 。
函數定義直接 function 函數名(參數1,參數2){}

Ⅱ php調用自定義函數

PHP代碼call_user_func函數類似於一種特別的調用函數的方法,使用方法如下:
function
a($b,$c)
{
echo
$b;
echo
$c;
}
call_user_func('a',
"111","222");
call_user_func('a',
"333","444");
//顯示
111
222
333
444
?>
調用類內部的方法比較奇怪,居然用的是array,不知道開發者是如何考慮的,當然省去了new,也是滿有新意的:
class
a
{
function
b($c)
{
echo
$c;
}
}
call_user_func(array("a",
"b"),"111");
//顯示
111
?>
call_user_func_array函數和call_user_func很相似,只不過是換了一種方式傳遞了參數,讓參數的結構更清晰:
function
a($b,
$c)
{
echo
$b;
echo
$c;
}
call_user_func_array('a',
array("111",
"222"));
//顯示
111
222
?>
call_user_func_array函數也可以調用類內部的方法的
Class
ClassA
{
function
bc($b,
$c)
{
$bc
=
$b
+
$c;
echo
$bc;
}
}
call_user_func_array(array('ClassA','bc'),
array("111",
"222"));
//顯示
333
?>
call_user_func函數和call_user_func_array函數都支持引用,這讓他們和普通的函數調用更趨於功能一致:
function
a($b)
{
$b++;
}
$c
=
0;
call_user_func('a',
$c);
echo
$c;//顯示
1
call_user_func_array('a',
array($c));
echo
$c;//顯示
2
另:call_user_func函數和call_user_func_array函數都支持引用。
?phpfunction
increment(&$var){
$var++;}$a
=
0;call_user_func('increment',
$a);echo
$a;
//
0call_user_func_array('increment',
array(&$a));
//
You
can
use
this
insteadecho
$a;
//
1?

Ⅲ php中使用什麼函數定義一個自定義函數

php語言中,使用 function來聲明一個函數


如: 用function 聲明一個名稱為get_article_info的函數,函數的參數為 $id

/**
*獲得指定的文章的詳細信息
*
*@accessprivate
*@paraminteger$id
*@returnarray
*/
functionget_article_info($id)
{
/*獲得文章的信息*/
$sql="SELECTa.*,IFNULL(AVG(r.comment_rank),0)AScomment_rank".
"FROM".$GLOBALS['ecs']->table('article')."ASa".
"LEFTJOIN".$GLOBALS['ecs']->table('comment')."ASrONr.id_value=a.article_idANDcomment_type=1".
"WHEREa.is_open=1ANDa.article_id='$id'GROUPBYa.article_id";
$row=$GLOBALS['db']->getRow($sql);

if($row!==false)
{
$row['comment_rank']=ceil($row['comment_rank']);//用戶評論級別取整
$row['add_time']=local_date($GLOBALS['_CFG']['date_format'],$row['add_time']);//修正添加時間顯示

/*作者信息如果為空,則用網站名稱替換*/
if(empty($row['author'])||$row['author']=='_SHOPHELP')
{
$row['author']=$GLOBALS['_CFG']['shop_name'];
}
}

return$row;
}

Ⅳ php 定義函數解釋

有點長啊~~
我簡要的說下我的理解了~~
這個函數的主要功能是用來過濾html代碼中的 js和css樣式的 還有frame窗口文件
$new = array("&"," ","'",""","<",">"," ","");
這是第一個new數組第四個元素應該要轉義的,這是一個錯誤。應改為:
$new = array("&"," ","'","\"","<",">"," ","");

主要邏輯是:
判斷是否存在變數
判斷是不是字元串數組
數組的話要循環調用safe處理

非數組直接處理 就是所說的主要功能
把以上代碼替換為空字元返回。

Ⅳ 在php中如何使用自定義函數庫

php語言中,使用function來聲明一個函數

如:用function聲明一個名稱為get_article_info的函數,函數的參數為$id
/***獲得指定的文章的詳細信息**@accessprivate*@paraminteger$id*@returnarray*/functionget_article_info($id){/*獲得文章的信息*/$sql="SELECTa.*,IFNULL(AVG(r.comment_rank),0)AScomment_rank"."FROM".$GLOBALS['ecs']->table('article')."ASa"."LEFTJOIN".$GLOBALS['ecs']->table('comment')."ASrONr.id_value=a.article_idANDcomment_type=1"."WHEREa.is_open=1ANDa.article_id='$id'GROUPBYa.article_id";$row=$GLOBALS['db']->getRow($sql);if($row!==false){$row['comment_rank']=ceil($row['comment_rank']);//用戶評論級別取整$row['add_time']=local_date($GLOBALS['_CFG']['date_format'],$row['add_time']);//修正添加時間顯示/*作者信息如果為空,則用網站名稱替換*/if(empty($row['author'])||$row['author']=='_SHOPHELP'){$row['author']=$GLOBALS['_CFG']['shop_name'];}}return$row;}

Ⅵ php自帶的函數都寫在哪個文件里能自己定義函數嗎

自帶的函數很多,可以在線查看或者下載PHP手冊,裡面有完整的。

可以自定義函數,我剛才在這個帖子裡面的回復有一個自定義函數的例子:http://..com/question/96295123.html

Ⅶ php函數內定義函數

匿名函數

<?php
functiontest(){
$func=function(){
echo'test';
};
$func();
}
?>

Ⅷ 在PHP中如何正確創建函數

Step 1 =>

php的擴展模塊都放在 ext/ 目錄下,比如說 snmp模塊、mysql模塊。 我們要建立自己的模塊,就要在ext目錄下為自己的模塊建一個目錄。比如,我們要做一個分析config文件的模塊,命名為pconfig模塊(parse config的簡寫),需在ext下建立目錄pconfig。將我寫好的7個文件到該目錄下,另外需對主目錄下的configure和internal_functions.c作一些修改。

Step 2 =>

Makefile.am Makefile.in

是模板文件,用戶執行configure時,會調用這兩個文件,生成編譯時所用的Makefile文件。修改時將小寫的pconfig換成你自己的模塊名,別忘了把大寫的PCONFIG也替換掉(不要告訴我你不會vi的替換語句)。config.m4也是執行configure將會調用的檢測腳本程序,以後我們來討論這些腳本程序的更深入的修改。現在你只需要把pconfig該成你的模塊就可以了。對config.h.stub和setup.stub也如法炮製。其實setup.stub也沒什麼用。

Step 3 =>

php3-pconfig.h 頭文件中

extern php3_mole_entry pconfig_mole_entry;

#define pconfig_mole_ptr &pconfig_mole_entry

#define phpext_pconfig_ptr pconfig_mole_ptr

這幾行定義了模塊的入口,將入口注冊到php後,php會通過模塊入口找到你寫的函數

下面幾個函數定義是用宏進行定義的,展開以後其實就是 php3_minit_pconfig , php3_rinit_pconfig ……分別在你的模塊初試化或結束時被調用,如果你的模塊很簡單,也就不需要這些定義了

extern PHP_MINIT_FUNCTION(pconfig);

extern PHP_RINIT_FUNCTION(pconfig);

extern PHP_MSHUTDOWN_FUNCTION(pconfig);

PHP_MINFO_FUNCTION(pconfig);

這是你的函數聲明,將來寫在php腳本語句中的函數名就是在PHP_FUNCTION中定義的名字。

PHP_FUNCTION(pconfig_test);

如果有多個,還可以繼續往下加

PHP_FUNCTION(pconfig_parsefile);

PHP_FUNCTION(pconfig_release); …….

Step 4 =>

接下來我們看最重點的C代碼了

function_entry pconfig_functions[] = {

PHP_FE(pconfig_test, NULL)

{NULL, NULL, NULL}

};

定義的是你的函數的入口(前面我們提到過模塊的入口),按照格式將你在頭文件中定義的函數寫進去吧。注意,這是用宏定義的,不要管語法是否正確。以後我們具體討論這些宏的用法。

php3_mole_entry pconfig_mole_entry = {

"pconfig", pconfig_functions, PHP_MINIT(pconfig), PHP_MSHUTDOWN(pconfig), PHP_RINIT(pconfig), NULL, PHP_MINFO(pconfig), STANDARD_MODULE_PROPERTIES

};

注冊模塊的入口信息,比如模塊名,函數介面,初試化模塊將調用的函數等等,如果你的模塊不執行復雜操作的話,可以忽略掉他們,寫成

php3_mole_entry pconfig_mole_entry = {

"pconfig", pconfig_functions, NULL,NULL,NULL,NULL,NULL,STANDARD_MODULE_PROPERTIES

};

Step 5 =>

寫你自己的函數

在頭文件和function_entry處,我們已經定義了自己的函數pconfig_test,現在我們就來實現pconfig_test的功能。就比如執行兩個數相加的和吧。

static void _php3_pconfig_test(INTERNAL_FUNCTION_PARAMETERS)

{ ......

}

PHP_FUNCTION(pconfig_test)

{

_php3_pconfig_test(INTERNAL_FUNCTION_PARAM_PASSTHRU);

}

當系統調用pconfig_test時,會調用你的_php3_pconfig_test函數,當然你也可以把_php3_pconfig_test里的內容直接寫在PHP_FUNCTION(pconfig_test)中,這樣做只是程序結構比較清晰。注意:不要將_php3_pconfig_test命名成php3_pconfig_test,PHP_FUNCTION(pconfig_test)宏展開後實際上就是php3_pconfig_test!

Step 6 =>

好了,現在我們開始修改configure,在echo $ac_n "checking for MySQL support""... $ac_c" 1>&6的前面(當然,如果你熟悉configure的話,可以加在任何合適的地方)加上下面幾句話

if test "${with_pconfig+set}" = set; then

withval="$with_pconfig"

# Add your lib in here

EXTRA_LIBS="$EXTRA_LIBS"

# Add your include path in here

INCLUDES="$INCLUDES"

EXT_SUBDIRS="$EXT_SUBDIRS pconfig"

EXT_LIBS="$EXT_LIBS pconfig/libphpext_pconfig.a"

EXTINFO_DEPS="$EXTINFO_DEPS ../ext/pconfig/extinfo.c.stub"

EXT_STATIC="$EXT_STATIC pconfig"

fi

修改internal_functions.c,在頭文件定義中加入#include "ext/pconfig/php3_pconfig.h"

在zend_mole_entry數組中加入phpext_pconfig_ptr,

Step 7 =>

從新configure,帶上需要的參數,不要忘記的是在參數里加入 --with-pconfig

Step 8 =>

index.php3

<? echo pconfig_test(123,678)."

"; ?>

執行%>php index.php3

810

Ⅸ 關於php自定義函數庫文件的引用

執行效率影響確實不大,不過建議樓主不要每次寫東西都復制粘貼,這樣影響進步。我個人的經驗,這個functions.php中的內容不能總是只增不減,隨著你的水平的提高,有的功能可能你會發現它們可以有更適當的安排。也許一些函數可以組織起來變成一個對象,也許有的函數更合適作為某個對象中的一個方法,這些都能夠幫你減少自定義函數文件的體積。

閱讀全文

與php文件定義函數相關的資料

熱點內容
手工粘土解壓球 瀏覽:548
在線視頻教育源碼 瀏覽:39
快四十學什麼編程 瀏覽:754
gnumakelinux 瀏覽:537
視易峰雲伺服器怎麼改系統 瀏覽:535
javamap取值 瀏覽:768
mac和win磁碟加密軟體 瀏覽:474
蘋果為什麼會連接不到伺服器 瀏覽:726
pdf格式文件如何保存 瀏覽:303
小霸王伺服器tx什麼意思 瀏覽:75
解釋dns命令 瀏覽:584
dmx512怎麼編程 瀏覽:744
北京雲主機17t雲伺服器 瀏覽:232
php伺服器url地址 瀏覽:440
哪裡看書免費app 瀏覽:437
php刪除數組中重復值 瀏覽:786
經理下命令咱都別說話是什麼意思 瀏覽:625
上海風機可編程式控制制器價格 瀏覽:249
工行app取消自動轉賬功能在哪裡 瀏覽:719
傳奇特殊命令 瀏覽:677