php運行函數
A. php 如何執行字元串中的函數
mixed call_user_func
( callable $callback
[, mixed $parameter
[, mixed $...
]] )
把第一個參數作為回調函數(callback),並且將其餘的參數作為回調函數的參數。
error_reporting(E_ALL);
functionincrement(&$var)
{
$var++;
}
$a=0;
call_user_func('increment',$a);
echo$a." ";
call_user_func_array('increment',array(&$a));//.3
echo$a." ";
後面可以跟多個參數!
B. PHP如何持續執行一個函數
PHP提供4個專門的執行外部命令的函數:exec(), system(), passthru(), shell_exec()
1)exec()
原型: string exec ( string $command [, array &$output [, int &$return_var ]] )
說明: exec執行系統外部命令時不會輸出結果,而是返回結果的最後一行。如果想得到結果,可以使用第二個參數,讓其輸出到指定的數組。此數組一個記錄代表輸出的一行。即如果輸出結果有20行,則這個數組就有20條記錄,所以如果需要反復輸出調用不同系統外部命令的結果,最好在輸出每一條系統外部命令結果時清空這個數組unset($output),以防混亂。第三個參數用來取得命令執行的狀態碼,通常執行成功都是返回0。
<?php
exec("dir",$output);
print_r($output);
?>
2)system()
原型: string system ( string $command [, int &$return_var ] )
說明: system和exec的區別在於,system在執行系統外部命令時,直接將結果輸出到游覽器,如果執行命令成功則返回true,否則返回false。第二個參數與exec第三個參數含義一樣。
<?php
system("pwd");
?>
3)passthru()
原型: void passthru ( string $command [, int &$return_var ] )
說明: passthru與system的區別,passthru直接將結果輸出到游覽器,不返回任何值,且其可以輸出二進制,比如圖像數據。第二個參數可選,是狀態碼。
<?php
header("Content-type:image/gif");
passthru("/usr/bin/ppm2tiff /usr/share/tk8.4/demos/images/teapot.ppm");
?>
4)shell_exec()
原型: string shell_exec(string $cmd)
說明: 直接執行命令$cmd
<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>
防超時的處理方法:
當執行命令的返回結果非常龐大時,可以需要考慮將返回結果輸出至其他文件,再另行讀取文件,這樣可以顯著提高程序執行的效率。
如果要執行的命令要花費很長的時間,那麼應該把這個命令放到系統的後台去運行。但在默認情況下,
象system()等函數要等到這個命令運行完才返回(實際上是在等命令的輸出結果),
這肯定會引起PHP腳本的超時。解決的辦法是把命令的輸出重定向到另外一個文件或流中,如:
<?php
system("/usr/local/bin/order_proc > /tmp/abc ");
?>
<?
$filename=time().".data";
exec("/app/gm/gm_center/test/hello.py > $filename",$output);
var_mp ($output);
?>
C. PHP常用函數有哪些
常用函數比較多
如:字元串處理函數,數組函數,日期函數,MySQL函數,文件系統函數,GD函數庫等
D. PHP中如何調用函數
如果agree有顯示結果
可以這樣做
<input type='button' name='No' value="Disagree" onClick="location.href=location.href+'?a=1'">
<?
if($_GET['a']=='1')
{
id=1;
agree($id,$startdate,$enddate,$days);
}
?>
其實你應分前後台,
分兩個文件,
一個顯示給客戶,在ie上運行,叫前台
一個處理事務在伺服器上運行,叫後台
用js從顯示頁跳轉到處理頁(或用提交表單,可處理更多信息)
處理完再跳轉到顯示頁
E. php如何調用函數
PHP函數調用與Java/C/C++是一樣的額,通過函數名(參數列表)就可以了,
舉個栗子:
圖中,有兩處函數調用,一開始的session_start()是調用的PHP函數,validate_user($username, $password)是用戶自定義函數,同樣的方式調用。
F. php頁面如何調用函數
在2.php 中 require('1.php');
就可以調用啦,這是最原生態的php代碼了。。
G. php 函數運行
get_class_vars這個函數得到的是默認變數的數組,得到的值是沒有經過任何函數和操作改變過的原始值。myclass()雖然是構造函數,但是在這個構造函數之前,類中的變數就已經有原始值了。
你可以再在程序末尾加下面一句,就能看到,變數的值改變了,但是get_class_vars得到的是原始值。
echo "var1: ".$my_class->var1;
H. PHP調用函數運行順序問題
echo $depth.$check->depth($depth);
這句話,第一步是對 $depth 和 $check->depth($depth) 分別進行解析
順序是沒錯的,先解析 $depth 為 trtr
但是在解析$check->depth($depth) 的時候,就執行了輸出echo "<br><font color=red>ERROR! $depth is not a numerial!</font>";
功能。
等解析徹底完成,再輸出的話,只有 $depth有字元,而$check->depth($depth)並未返回任何可供輸出的字元串( $this->depth = $depth;並未執行,所以return 的是個空值)
I. php 伺服器運行函數
輸出緩存函數flush()么?
< ?php
for($i = 1; $i <= 300; $i++ ) print(「 「);
// 這一句話非常關鍵,cache的結構
//使得它的內容只有達到一定的大小才能從瀏覽器里輸出
// 換言之,如果cache的內容不達到
//一定的大小,它是不會在程序執行完畢前輸出的。經
// 過測試,我發現這個大小的底限是
//256個字元長。這意味著cache以後接收的內容都會
// 源源不斷的被發送出去。
For($j = 1; $j <= 20; $j++) {
echo $j.」 」;
flush(); //這一部會使cache新增的內容
//被擠出去,顯示到瀏覽器上
sleep(1); //讓程序「睡」一秒鍾,會讓
//你把效果看得更清楚
}
?>
J. php調用函數的方法
你那個set()函數本身有問題
test.php
<?php
require_once "test2.php";
set();
?>
test2.php
<?php
function set(){
echo "wdqwdqwdqw"
}
?>
弄個簡單的函數自己測試一下不就行了