Ⅰ php數組怎麼導入定義函數
1、首先新建一個php文件,命名為test.php,用於講解php如何把數組作為參數傳遞給函數。
2、其次在test.php文件中,自定義一個函數myfunc,在函數內,使用foreach遍歷數組,並輸出元素值。
3、最後在test.php文件中,定義一個數組,用於函數的參數,並導入。
Ⅱ php中自定義函數正確的語句是
像數學中的函數一樣,y=f(x)是函數基本的表達形式,x可看做是參數,y可看做是返回值,即函數定義就是一個被命名的、獨立的代碼段,它執行特定的任務,並可能給調用它的程序返回一個值。
自定義函數 函數的聲明
在編寫程序的過程中,我們會經常碰到某些功能模塊在PHP中沒有提供系統函數,這樣就需要我們自己定義函數,即自定義函數,自定義函數的規則如下:
每個函數的第一行都是函數頭,由聲明函數的關鍵字function、函數名和參數列表三部分組成。
每個自定義函數都必須使用function關鍵字聲明。
函數名可以代表整個函數,可以將函數命名為任何名稱,只要遵循變數名的命名規則即可。但函數名稱必須唯一,且不能與系統函數重名。
聲明函數時函數名後面的花括弧也是必須有的,在花括弧中表明了一組可以接受的參數列表,參數就是聲明的變數,然後在調用函數時傳遞給它值。參數列表可以沒有,也可以有—個或多個參數,多個參數使用逗號分隔。
函數體位於函數頭後面,用花括弧括起來。函數被調用後,執行到retun語句或最外面的花括弧後結束,返回到調用的程序。
使用關鍵字return可以從函數中返回一個值,然後返回到調用程序處繼續執行。
<?php
/* 將使用雙層for循環輸出表格的代碼聲明為函數,函數名為table */
functiontable(){
echo"<table align='center' border='1' width='600'>";
for(out=0;out<10;out++){
bgcolor=out%2==0?"red":"blue";//各行換背景色
echo"<tr bgcolor=".bgcolor.">";
for(in=0;in<10;in++){
echo"<td>".(out*10+in)."</td>";
}
echo"</tr>";
}
echo"</table>";
}
?>
函數的調用
不管是自定義的函數還是系統函數,如果函數不被調用,就不會執行。函數被調用後開始執行函數體中的代碼,執行完畢返回到調用的位置繼續向下執行。調用規則如下:
通過函數名稱去調用函數。
如果函數有參數列表,還可以通過函數名後面的圓括弧傳入對應的值給參數,在函數體中使用參數來改變函數內部代碼的執行行為。
如果函數有返回值,當函數執行完畢時就會將return後面的值返回到調用函數的位置處。
<?php
/* 將使用雙層for循環輸出表格的代碼聲明為函數,函數名為table */
functiontable(){
echo"<table align='center' border='1' width='600'>";
for(out=0;out<10;out++){
bgcolor=out%2==0?"red":"blue";//各行換背景色
echo"<tr bgcolor=".bgcolor.">";
for(in=0;in<10;in++){
echo"<td>".(out*10+in)."</td>";
}
echo"</tr>";
}
echo"</table>";
}
?>
<?php
table();
?>
函數的參數
參數列表是由零個、一個或多個參數組成的。每個參數是一個表達式,用逗號分隔。對於有參函數,在PHP腳本程序中和被調用函數之間有數據傳遞關系。定義函數時函數名後面括弧內的表達式稱為形式參數(簡稱「形參」),被調用函數名後面括弧中的表達式稱為實際參數(簡稱「實參」),實參和形參需要接順序對應傳遞數據。如果函數沒有參數列表,函數執行的任務就是固定的,用戶在調用函數時不能改變函數內部的一些執行行為。
Demo
<?php
/**
自定義函數table()時,聲明三個參數,參數之間使用逗號分隔
@paramstringtableName 需要一個字元串類型的表名
@paramintrows 需要一個整型數值設置表格的行數
@paramintcols 需要另一個整型值設置表格的列數
*/
functiontable(tableName,rows,cols){
echo"<table align='center' border='1' width='600'>";
echo"<caption><h1>tableName</h1></caption>";
for(out=0;out<rows;out++){//使用第二個參數rows指定錶行數
bgcolor=out%2==0?"red":"blue";
echo"<tr bgcolor=".bgcolor.">";
for(in=0;in<cols;in++){//使用第三個參數cols指定表列數
echo"<td>".(out*cols+in)."</td>";
}
echo"</tr>";
}
echo"</table>";
}
?>
<?php
table("千度的表格",10,10);
?>
函數的返回值
函數的返回值是函數執行的結果,調用函數的腳本程序不能直接使用函數體裡面的信息,但可以通過關鍵字return向調用者傳遞數據。return語句注意點如下:
return語句可以向函數調用者返回函數體中任意執行結果值。
在函數體中如果執行了return語句,它後面的語句就不會被執行。
<?php
/**
自定義函數table()時,聲明三個參數,參數之間使用逗號分隔
@paramstringtableName 需要一個字元串類型的表名
@paramintrows 需要一個整型數值設置表格的行數
@paramintcols 需要另一個整型值設置表格的列數
*/
functiontable(tableName,rows,cols){
returnStr="這是返回的字元串";
echo"<table align='center' border='1' width='600'>";
echo"<caption><h1>tableName</h1></caption>";
for(out=0;out<rows;out++){//使用第二個參數rows指定錶行數
bgcolor=out%2==0?"red":"blue";
echo"<tr bgcolor=".bgcolor.">";
for(in=0;in<cols;in++){//使用第三個參數cols指定表列數
echo"<td>".(out*cols+in)."</td>";
}
echo"</tr>";
}
echo"</table>";
returnreturnStr;
}
?>
<?php
echotable("千度的表格",10,10);
?>
Ⅲ 關於php自定義函數庫文件的引用
執行效率影響確實不大,不過建議樓主不要每次寫東西都復制粘貼,這樣影響進步。我個人的經驗,這個functions.php中的內容不能總是只增不減,隨著你的水平的提高,有的功能可能你會發現它們可以有更適當的安排。也許一些函數可以組織起來變成一個對象,也許有的函數更合適作為某個對象中的一個方法,這些都能夠幫你減少自定義函數文件的體積。
Ⅳ php 如何定義函數連接資料庫
你定義的dbopen沒看見你調用?其實你可以在dbopen裡面返回$conn,例如:
function dbopen(){
.....
return $Conn;
}
$cid=dbopen();
以後就可以使用$cid變數操作資料庫
Ⅳ 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;
}