php函數自定義
Ⅰ php里的自定義函數是什麼意思
就是這個函數是自己寫的,而不是系統或者所帶的庫給你的函數。
函數(function),名稱出自數學家李善蘭的著作《代數學》。之所以如此翻譯,他給出的原因是「凡此變數中函彼變數者,則此為彼之函數」,也即函數指一個量隨著另一個量的變化而變化,或者說一個量中包含另一個量。
函數的定義通常分為傳統定義和近代定義,函數的兩個定義本質是相同的,只是敘述概念的出發點不同,傳統定義是從運動變化的觀點出發,而近代定義是從集合、映射的觀點出發。
Ⅱ 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自定義函數
這個要根據實際情況,需要返回值的話,你可以加return,不需要的話,你可以不加,兩者的區別一是在於實際需求不同,二是在於加了return的話,程序運行的響應時間上會稍稍的長一點點,不過,這點時間一般不會有什麼影響。比如:
你要輸出一個字元串:
function type_str(){
print("123");
}
這樣的話,可以,但是如果你要判斷是否輸出成功了,你就必須這么寫:
function type_str(){
if(print("123")){
return true;
}else return false;
}
你可以通過程序的返回值來判斷是否輸出成功。還有一些自定義函數處理後的結果也是需要返回的,就得用到return。比如:
function add($a , $b){
$sum = $a+$b;
return $sum;
}
函數運行結束後,函數內部定義的變數全部會被銷毀,所以,為了你處理的結果不會白白浪費掉,一定要將$sum 返回。
再告訴你一個小竅門:echo和print是不同的,echo不是一個函數,更沒有返回值,所以你不能寫
if(echo "123") ,但是 print是一個函數,它有返回值,成功則返回true,失敗則返回false,可以寫:if(print("123")); 之類的。所以print要比echo速度慢一點點,一般情況下用echo就行了。
Ⅳ 在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.ini中的錯誤顯示級別調低一點,把display_errors 設置成off,那些notice就沒有了,fatal error是因為沒有發現那個函數,看是不是路徑不對,或者許可權的問題,函數的聲明
function functionname(){ do something } 函數的調用functionname(); functionname是要聲明函數的名稱,dosomething是要執行的一些代碼。
Ⅵ php自定義函數解釋
一般來說不是這樣寫
<?php
function functionname($param1, $param2) {
//操作,例如做參數相加
$sum = $param1 + $param2;
return $sum; //這里是函數的返回值,和函數名沒有任何關系
}
//調用
$val = functionname(1, 2);
echo $val; //會得到3
?>
你那$ping 和 $shen沒有任何關系
$ping 是一個自定義變數
$shen只是一個參數,只在function內起作用
Ⅶ php中自定義函數正確的語句是
像數學中的函數一樣,y=f(x)是函數基本的表達形式,x可看做是參數,y可看做是返回值,即函數定義就是一個被命名的、獨立的代碼段,它執行特定的任務,並可能給調用它的程序返回一個值。
自定義函數 函數的聲明
在編寫程序的過程中,我們會經常碰到某些功能模塊在PHP中沒有提供系統函數,這樣就需要我們自己定義函數,即自定義函數,自定義函數的規則如下:
每個函數的第一行都是函數頭,由聲明函數的關鍵字function、函數名和參數列表三部分組成。
每個自定義函數都必須使用function關鍵字聲明。
函數名可以代表整個函數,可以將函數命名為任何名稱,只要遵循變數名的命名規則即可。但函數名稱必須唯一,且不能與系統函數重名。
聲明函數時函數名後面的花括弧也是必須有的,在花括弧中表明了一組可以接受的參數列表,參數就是聲明的變數,然後在調用函數時傳遞給它值。參數列表可以沒有,也可以有—個或多個參數,多個參數使用逗號分隔。
函數體位於函數頭後面,用花括弧括起來。函數被調用後,執行到retun語句或最外面的花括弧後結束,返回到調用的程序。
使用關鍵字return可以從函數中返回一個值,然後返回到調用程序處繼續執行。
- Demo
通過函數名稱去調用函數。
如果函數有參數列表,還可以通過函數名後面的圓括弧傳入對應的值給參數,在函數體中使用參數來改變函數內部代碼的執行行為。
如果函數有返回值,當函數執行完畢時就會將return後面的值返回到調用函數的位置處。
- Demo
return語句可以向函數調用者返回函數體中任意執行結果值。
在函數體中如果執行了return語句,它後面的語句就不會被執行。
- Demo
<?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
/* 將使用雙層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語句注意點如下:
<?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自定義函數
outPut函數 默認$newName 參數為空,也就是說調用outPut時可以不傳第三個參數
那麼執行的時候就是imagejpeg($img); 如果傳了第三個參數 那麼if條件語句就判斷不通過,那麼將會執行imagejpeg($img,$newName)
imagejpeg函數有第二個參數的時候 是將img指定輸出到第二個參數所指定的文件名,
如果沒有第二個參數,默認輸出到瀏覽器