php中常用函数 引用详解

$uid=hexdec(substr(uniqid(),-12,8));用来生产一个随机码作为用户的id,

hexdex()是将十六进制转换为十进制,遇到非十六进制数据这转换为0

substr($str,bg,leng)返回$str字符中从bg开始长度为leng的字符,如果是负数的话他将从后面开始计数到下标从1开始然后向后取值,

uniqid(prefix,true/false)根据当前时间的毫秒数生产一个随机数 ,默认是13位,当使用前缀prefix(int) 的时候 设为true 会产生23为并在后面加上一个平均信息值,是值更加唯一,

strtotime("now")将时间转换为unix时间戳 返回string类型,

session_set_save_handler()设置session的用户级别创建读写销毁

array_slice($a,beg,leng,true);从数组$a的beg开始取出leng个值 true表示不改变键值,

sleep(10)程序睡眠10秒

$_SERVER[]是一个包含如头信息(header),路径(path)脚本位置(script locations)的数组,数组实体是由web创建的,下面是一些常用的字段:PHP_SELF 当前正在执行脚本的文件名,与document  root相关,eg:在url:http://example.com/test.php/foo.bar的脚本使用$_SERVER['PHP_SELF']将得到/test.php/foo.bar这个结果,__FILE__ 常量包含当前文件的绝对路径和文件名,如果php以命令行方式运行

SERVER_NAME 当前运行脚本所在服务器主机的名称,如果该脚本运行在虚拟主机上,则显示该虚拟主机,

REQUEST_METHOD 访问页面时的请求方法 get post head put

REQUEST_TIME 请求开始时的时间戳,

DOCUMENT_ROOT 当前运行脚本所在的文档跟目录,在服务器配置文件中定义,

HTTP_HOST当前请求的头信息,

REMOTE_ADDR 正在浏览当前页面用户的ip HOST PORT 


php传值 与 传引用的区别 应用

传值:函数内部对值的任何给变在函数外面都会被忽略,

传引用:在啊函数内部对值的修改在函数外面也会体现,

优缺点:按值传递的时候,php会把值复制一次,这在打的字符串中是很耗资源的,按引用传递则不会,在函数形式参数前加&表示传引用,这是引用很重要的一个用处就是传递变量,让函数可以改变一个变量的值,注意在调用函数的时候不用加&只用在声明的时候在参数里面加上即可,只有一部分可以通过引用传递:变量foo($a) new语句foo(new fooler()),从函数中返回的引用,直接传数值foo(5)将到致命错误,unset($aa)取消引用,当用 global $var 声明一个变量时实际上建立了一个到全局变量的引用。也就是说和这样做是相同的$var = & $global["var"]. 引用不是指针,

在 PHP 中引用意味着用不同的名字访问同一个变量内容。php中允许两个变量指向同一个值$a = &$b像这样,

复杂数组最好是拷贝不是引用,

//传值 传址 传引用 echo"<br/>"; $a = 2; function test($n){//传值 $n +=2; echo "$n"; } test($a);//输出 4 echo "yuanzhi:"."$a";//输出2 function yinyong(&$m){ $m +=2; echo "$m"; } echo "<br/>"; yinyong($a);//输出4 echo "yingyong:"."$a";//输出4 echo "<br/>"; test($a);//输出6 //$aa = &$b;指 $a $b指向同一个值,他们是一个值的不同引用,任何一个改变都影响另一个 $aa = 5;//这个5不起作用在下面的$aa =& $b中, $aa =& $b;//声明后两个变量同时指向一个地方,但此时两者都没有值 也不是null $aa = 8; echo "--------------<br/>"; echo $aa."aaaaa";//输出8 echo $b."bbbbbb";//输出8??????????????? unset($aa);//取消引用 //echo "$aa";//取消后显示为 Undefined variable function foo(&$var){ $var +=2; echo "$var"; } $p = 5; foo($p);//输出7 $p也将变为7, function &bar(){//从函数中返回的引用也可以传递 $a = 8; return $a; } foo(bar());// //foo(5);//导致致命错误 foo($a = 5);//也可以, echo"<br/>"; $var1 = "Example variable"; $var2 = ""; function global_references($use_globals) { global $var1, $var2;//如果在一个函数内部给一个声明为 global 的变量赋于一个引用,该引用只在函数内部可见。可以通过使用 $GLOBALS 数组避免这一点。 if (!$use_globals) { $var2 =& $var1; // visible only inside the function } else { $GLOBALS["var2"] =& $var1; // visible also in global context } } global_references(false); echo "var2 is set to '$var2'\n"; // var2 is set to '' global_references(true); echo "var2 is set to '$var2'\n"; // var2 is set to 'Example variable' echo "<br/>"; $ref = 0; $row =& $ref;// 如果在 foreach 语句中给一个具有引用的变量赋值,被引用的对象也被改变。 foreach (array(1, 2, 3) as $row) { echo $row; } echo $ref;//输出3,只输出数组中最后面的一个值, echo "<br/>";
 

 

你可能感兴趣的:(应用服务器,PHP,浏览器,unix,脚本)