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"
}
?>
弄个简单的函数自己测试一下不就行了