php函數定義
『壹』 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中構造函數與自定義函數區別
構造方法:用戶創建對象時,系統自動調用的方法;
功能:初始化類中必備數據的;
PHP5實現方法:
1)方法名和類名相同的方法
2)PHP中設置的魔術方法(用戶執行了某種操作後,系統自動調用的方法):
__construct();
注意:1】如果沒有定義構造方法,那麼系統會自動的創建一個空魔術構造方法;
2】如果PHP4中的構造方法和PHP5中的構造方法,同時存在,那麼PHP5中的構造方法優先使用;普通的成員方法和構造方法的區別和聯系:
1】普通的方法如果定義的名字和類名相同,那麼就變成構造方法
2】如果構造方法中有參數,那麼參數列表要和創建對象時,類名後的小括弧參數類表完全一樣;
3】普通的方法主要是為了完成某個功能,而構造方法主要是初始化數據
4】普通的方法的可以有返回值,但是構造方法從語法上可以有返回值,但是從意義上不能有返回值;
『叄』 php變數定義方法
PHP語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。以下是為大家分享的php變數定義方法,供大家參考借鑒,歡迎瀏覽!
1.定義常量define("CONSTANT", "Hello world.");
常量只能包含標量數據(boolean,integer,float 和 string)。
調用常量時,只需要簡單的用名稱取得常量的值,而不能加「$」符號,如:echo CONSTANT;
注: 常量和(全局)變數在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。
2.普通變數$a = "hello";
3.可變變數(使用兩個美元符號($))
$$a = "world";
兩個變數都被定義了:
$a 的內容是「hello」並且 $hello 的內容是「world」。
因此,可以表述為:
echo "$a ${$a}";或者 echo "$a $hello";它們都會輸出:hello world
要將可變變數用於數組,必須解決一個模稜兩可的問題。這就是當寫下 $$a[1] 時,解析器需要知道是想要 $a[1] 作為一個變數呢,還是想要 $$a 作為一個變數並取出該變數中索引為 [1] 的值。解決此問題的語法是,對第一種情況用 ${$a[1]},對第二種情況用 ${$a}[1]。
4.靜態變數
在函數內部static $a = 0;
注意:聲明中用表達式的結果對其賦值會導致解析錯誤如static $a =3+3;(error)
靜態變數僅在局部函數域中存在(函數內部),函數執行完之後,變數值不會丟失,可用於遞歸調用
5.全局變數
在函數體內定義的global變數,函數體外可以使用,在函數體外定義的global變數不能在函數體內使用,在全局范圍內訪問變數可以用特殊的 PHP 自定義 $GLOBALS 數組:
如:$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一個函數域內用 global 語句導入的一個真正的全局變數實際上是建立了一個到全局變數的引用
global $obj;
註:對於變數的 static 和 global 定義是以 應用 的方式實現的
6.給變數賦值:傳地址賦值(簡單引用):
$bar = &$foo; //加&符號到將要賦值的變數前
改動新的變數將影響到原始變數,這種賦值操作更加快速
注意:只有命名變數才可以傳地址賦值
注意:如果
$bar = &$a;
$bar = &$foo;
改變$bar的值只能改變變數foo的值,而不改變a的值(引用改變了)
7.PHP 超全局變數$GLOBALS : 包含一個引用指向每個當前腳本的全局范圍內有效的變數。該數組的鍵標為全局變數的 名稱。從 PHP 3 開始存在 $GLOBALS 數組。
$_SERVER : 變數由 Web 伺服器設定或者直接與當前腳本的執行環境相關聯。類似於舊數組 $HTTP_SERVER_VARS 數組(依然有效,但反對使用)。
$_GET : 經由 HTTP GET 方法提交至腳本的變數。
$_POST : 經由 HTTP POST 方法提交至腳本的變數。
$_COOKIE : 經由 HTTP Cookies 方法提交至腳本的變數。
$_FILES : 經由 HTTP POST 文件上傳而提交至腳本的變數。
文件上傳表單中要有 enctype="multipart/form-data"
$_ENV : 執行環境提交至腳本的變數。
$_REQUEST :經由 GET,POST 和 COOKIE 機制提交至腳本的.變數,因此該數組並不值得信任。所有包含在該數組中的變數的存在與否以及變數的順序均按照 php.ini 中的 variables_order 配置指示來定義。該數組沒有直接模擬 PHP 4.1.0 的早期版本。參見 import_request_variables()。
注意: 自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在於 $_REQUEST 中。
$_SESSION :當前注冊給腳本會話的變數。
如何禁用phpinfo():
php.ini中
disable_functions = phpinfo()
重啟web伺服器。
php中的常量
常量只能用define(常量名,常量值);
常量只能包含標量數據(boolean,integer,float 和 string)。
可以簡單的通過指定其名字來取得常量的值,不要在常量前面加上 $ 符號。如果常量名是動態的,也可以用函數
constant() 來讀取常量的值。用 get_defined_constants() 可以獲得所有已定義的常量列表。
注: 常量和(全局)變數在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。
如果使用了一個未定義的常量,PHP 假定想要的是該常量本身的名字,如同用字元串調用它一樣(CONSTANT 對應 "CONSTANT")。此時將發出一個 E_NOTICE 級的錯誤。參見手冊中為什麼 $w3sky[bar] 是錯誤的(除非事先用 define() 將 bar 定義為一個常量)。如果只想檢查是否定義了某常量,用 defined() 函數。
常量和變數不同:
* 常量前面沒有美元符號($);
* 常量只能用 define() 函數定義,而不能通過賦值語句;
* 常量可以不用理會變數范圍的規則而在任何地方定義和訪問;
* 常量一旦定義就不能被重新定義或者取消定義;
* 常量的值只能是標量。
定義常量
<?PHP
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
?>
『肆』 關於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中function是什麼意思
function 就是自定義函數
如:
functionjia($a){
$b=$a+10;
return$b;
}
'以上就是一個自定義函數,下面看看怎麼使用它
echojia(『10』);
顯示結果為20 //這里jia就是自定義的函數名,這樣只要給$a任何數字返回的結果都為+10的結果,這樣就是自定義了一個函數,這個例子是很簡單的~ 不過通過自定義函數你會發現一切變得更好實現,加油 O(∩_∩)O
『陸』 php function 怎麼用
用戶自定義函數也稱自定義函數,它們不是PHP提供的,是由程序員創建的.由於自己創建了這樣的函數,所以就可以完全控制這些函數.因此可以讓一個函數完全按照自己希望的方式運行
1,申明函數
在PHP中,定義函數的方法同其他編程語言幾乎一樣.下面是PHP申明函數的語法結構:
復制代碼代碼如下:
Function function_name($argument1,$argument2,$argument3,......$argumentn)
{
//函數代碼code
Return 返回值;
}
以上語法結構中,關鍵字的含義如下.
(1)function:用於申明用戶自定義函數的關鍵字.
(2)function_name:要創建的函數名稱.該名稱將在以後被調用時使用.函數名應該唯一,因為PHP不支持重載.在命名函數的時候,需要遵循和變數命名
相同的原則.但是函數名不能以$開頭,而變數可以.
(3)argument:要傳遞給函數的值.函數可以有多個參數,它們之間用逗號.但是參數項是可選的,可以在調用函數的時候不傳遞任何參數.
(4)code:是在函數被調用的時候執行的一段代碼.如果有兩條或者多條語句,則代碼必須用大括弧"{}"括起來.但是,如果只有一條代碼,則不需要大括弧.
(5)Return:將調用的代碼需要的值返回.任何類型都可以返回,包括列表和對象.這導致函數立即結束它的運行,並且將控制權傳遞回它被調用的行.
2,無參數函數
代碼func_1.php
復制代碼代碼如下:
<?php
require 'a.php';
echo "我不會被執行!";
?>
3,有參數函數
PHP支持按值傳遞參數(默認),通過引用傳遞和默認參數值.可變長度參數列表僅在PHP4和後繼版本中被支持.
(1)值傳遞參數.按值進行參數傳遞是PHP的默認傳遞方式.使用這個方法,必須在主程序調用時傳遞一個值(參數).
代碼sum.php
復制代碼代碼如下:
<?php
function sum ($a,$b)
{
Echo $a+$b;
}
sum(100,20); //開始調用該函數
?>
(2)引用參數.在按照值傳遞的時候,只有參數的副本傳遞給被調用的函數.但是在被調用函數內部對這些值的任何修改,都不會影響調用函數
中的原始值.引用傳遞其實也就是地址傳遞,將一個變數的地址作為參數傳遞.
代碼valuechange.php
復制代碼代碼如下:
<?php
$myNum=100;
function Valuechange ($number)
{
$number=$number+1;
Echo $number . "<br>";
}
Valuechange($myNum);
Echo $myNum;
?>
(3)默認值參數.使用默認的參數值傳遞方法,函數必須在調用的時候有一個參數.如果沒有使用的值,就把默認值傳遞給函數參數.默認值必須是常量表達式,不是變數,
類成員或者函數調用.
提示:當使用默認參數時,任何默認參數必須放在非默認參數的右側;否則,可能函數不會按照預期的情況工作.
代碼func_default.php
復制代碼代碼如下:
<?php
$myNum=100;
function Valuechange ($number)
{
$number=$number+1;
Echo $number . "<br>";
}
Valuechange($myNum);
Echo $myNum;
?>
『柒』 PHP里的自定義函數是什麼意思
就是這個函數是自己寫的,而不是系統或者所帶的庫給你的函數。
函數(function),名稱出自數學家李善蘭的著作《代數學》。之所以如此翻譯,他給出的原因是「凡此變數中函彼變數者,則此為彼之函數」,也即函數指一個量隨著另一個量的變化而變化,或者說一個量中包含另一個量。
函數的定義通常分為傳統定義和近代定義,函數的兩個定義本質是相同的,只是敘述概念的出發點不同,傳統定義是從運動變化的觀點出發,而近代定義是從集合、映射的觀點出發。
『捌』 PHP常用函數有哪些
常用函數比較多
如:字元串處理函數,數組函數,日期函數,MySQL函數,文件系統函數,GD函數庫等
『玖』 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中的自定義函數
把php.ini中的錯誤顯示級別調低一點,把display_errors 設置成off,那些notice就沒有了,fatal error是因為沒有發現那個函數,看是不是路徑不對,或者許可權的問題,函數的聲明
function functionname(){ do something } 函數的調用functionname(); functionname是要聲明函數的名稱,dosomething是要執行的一些代碼。