Ⅰ php函數調用問題
程序是從上到下執行的,執行到a();的時候還沒有執行function a(){};這個,就是說還沒有定義a();這個方法,必須先執行function a(){};之後 再調用a(); 才生效。
Ⅱ php的構造函數可以調用它本身嗎
可以,這叫遞歸.但如果放錯位置,或者條件控製得不好,就會造成死循環. 或者把你的函數寫出來,看看是什麼問題
Ⅲ php類怎麼調用自己的函數
對,
public 的 是這樣調用.
static 的是 self::function().
====
over
Ⅳ php構造方法能不能進行自身調用(__construct()),幫忙解決一下,謝謝
__construct()可以自己另行調用的!
$obj = new Class(1);
$obj->__construct(1);
允許這樣用
額,題目沒看清楚
不過構造函數內調用它本身也是可以的!
比如
<?php
class Test{
var $value;
function __construct($num){
while($this->value<100){
$this->value += $num;
$this->__construct($num);
}
}
}
$obj = new Test(8);
echo $obj->value;
?>
Ⅳ PHP中,怎麼在成員函數當中調用自己的成員屬性除了靜態調用之外還有別的方法嗎
和靜態數據成員一樣,靜態成員函數是類的一部分,而不是對象的一部分。如果要在類外調用公用的靜態成員函數,要用類名和域運算符「∷」。
如 Box∷volume( ); 實際上也允許通過對象名調用靜態成員函數,如 a.volume( ); 但這並不意味著此函數是屬於對象a的,而只是用a的類型而已。 靜態成員函數的作用是為了能處理靜態數據成員。 可以說,靜態成員函數與非靜態成員函數的根本區別是:非靜態成員函數有this指針,靜態成員函數並不屬於某一對象,它與任何對象都無關,靜態成員函數沒有this指針。
由此決定了靜態成員函數不能訪問本類中的非靜態成員。 在C++程序中,靜態成員函數主要用來訪問靜態數據成員,而不訪問非靜態成員。假如在一個靜態成員函數中有以下語句: cout<<height<<endl; //若height已聲明為static,則引用本類中的靜態成員,合法 cout<<width<<endl; //若width是非靜態數據成員,不合法。但是,並不是絕對不能引用本類中的非靜態成員,只是不能進行默認訪問,因為無法知道應該去找哪個對象。如果一定要引用本類的非靜態成員,應該加對象名和成員運算符「.」。如 cout<<a.width<<endl; //引用本類對象a中的非靜態成員
Ⅵ 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函數調用與Java/C/C++是一樣的額,通過函數名(參數列表)就可以了,
舉個栗子:
圖中,有兩處函數調用,一開始的session_start()是調用的PHP函數,validate_user($username, $password)是用戶自定義函數,同樣的方式調用。
Ⅷ php 函數自調用問題
你代3進去一步步算下
sum(3)
->
3>1
return 3+=sum(2);
那你就算sum(2)
sum(2)
->
2>1
return 2+=sum(1)
sum(1)
->
return 1;
sum(1)值是1,所以sum(2) = 3 ,sum(3)=6;
邏輯還是要自己體會的。流程就是這樣。
Ⅸ PHP 方法能不能像遞歸函數一樣在方法內部調用自己
可以啊,設置好跳出條件,實例化類,直接調用遞歸的方法,完全可以做個簡單的例子
Ⅹ php遞歸函數和回調函數的區別,難道遞歸是函數內調用自身,回調是函數內調用別人求解
遞歸其實就是「一個函數的自調用」
在這個「自調用」的過程中,必須要有一個變化的「參數」,當這個「參數」達到你的期望值的時候,終止該「自調用」過程
拿樓主的程序來說
demo($n)內部又有調用demo($n-1),構成了「自調用」
且,$n又有一個「期望值」,即是$n>1,不滿足此條件時,該自調用終止
即是說,最後一個執行的demo是demo($n9-1),其中$n9=2,然後返回為1(因為執行了return 1)
則$n9*demo($n9-1)即等於 2*demo(2-1),又等於2*1=2;
則$n8*demo($n8-1)即等於 3*demo(3-1),又等於3*2=6;
則$n7*demo($n7-1)即等於 4*demo(4-1),又等於4*6=24;
……
依次類推
這樣想:
demo(1)是等於1,這個沒有疑問吧?
然後demo(2)等於2*demo(1)=2*1=2
然後demo(3)等於3*demo(2)=3*2=6
……
一直到demo(10)