`
myfreespace
  • 浏览: 223269 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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/>";
 

 

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics