php調用類中的函數
Ⅰ php直接調用函數和調用另外一個文件中的函數的區別
//如果是PHP文件中的函數,唯一的區別是:先引入外部文件,然後直接調用。
//如果是外部類文件中的函數,需要引入,然後new對象後,再調用該對象的函數。
$msg=test_msg();
functiontest_msg(){
echo"";
}
//調用外部文件中的函數
//首先引入文件
include_once'file.php';
$msg=test_msg();
functiontest_msg(){
echo"";
}
Ⅱ 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中,參數調用相應函數是如何實現的
symfony 裡面的 Action 是這樣做的 所有函數都有前綴execute
加入你傳入的是
http://xxx.xxx.xxx.xxx/mymod/myfunc
那麼就是調用mymod 模塊的 myfunc 函數
具體可能是這樣的意思
通過 URI 分析獲取 mod 和 相應的 函數
$moles = "mymod";
$method = "myfunc"
$action = new $$moles();
$action->$method();
也就是 PHP 里比較喜歡人的 可變函數 以及 可變變數的 應用.
Ⅳ PHP中的函數
ThinkPHP中 C(),D(),S()
1.在具體的Action方法裡面,可以用C()對某些參數進行動態配置,主要指那些還沒有使用的參數。具體用法如下:
C('參數名稱'); //獲取已經設置的參數值
C('參數名稱','新的參數值'); //設置新的值
2.D()函數的使用:
先定義好模型類,如UserModel,然後就可以用D()函數對數據進行操作了。例如:
先在"你的項目"\Lib\Model下建立一個名為UserModel.class.php的PHP腳本,內容如下:
class UserModel extends Model{}
然後,無需增加任何屬性和方法,就可以進行如下操作:
$User = D("User"); //實例化User對象,User是你在資料庫建立的一個名為"前綴_user"的數據表
也可以用$User = new UserModel()代替,進行實例化對象的操作。
實例化之後,就可以對數據進行增刪查改等一系列操作了,如:
$User->find(1); //查找主鍵為1的記錄
3.S()函數的使用:
ThinkPHP把各種緩存方式都抽象成統一的緩存類來調用,而且ThinkPHP把所有的緩存機制統一成一個S方法來進行操作,所以在使用
不同的緩存方式的時候並不需要關注具體的緩存細節。如:
S('data',$Data); //使用data標識緩存$Data數據
S('data',$Data,3600); //緩存$Data數據3600秒
$Data = S('data'); //獲取緩存數據
Ⅳ PHP中怎麼才能調用JS文件里的一個函數!
我當時自己做魔域帳號注冊程序的時候也是碰到了這樣的問題,不過我用的不是PHP而是ASP.NET。
後來自己寫了個MD5加密的類,傳值進MYSQL資料庫把這個問題解決了。