session_start();
isset($_SESSION['xxx']);
unset($_SESSION['xxx']);
session_destroy();
setcoockie(name,value,expire,path,domain,security);
$_COOKIE['xxx'];
ini_set('display_errors', 'On');
error_reporting(E_ALL);
js闭包
Javascript语言特有的"链式作用域"结构(chain scope),子对象会一级一级地向上寻找所有父对象的变量。所以,父对象的所有变量,对子对象都是可见的,反之则不成立
this
的上下文基于函数调用的情况。和函数在哪定义无关,而和函数怎么调用有关。
在全局上下文(任何函数以外),this指向全局对象(windows)
在函数内部时,this由函数怎么调用来确定
当函数作为对象方法调用时,this指向该对象
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
};
alert(object.getNameFunc()()); // The Window
等同下面三行代码
var fun = object.getNameFunc();
var res = fun();//真正调用的时候
alert(res);
----------------------------------------------------------------------------
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
var that = this;
return function(){
return that.name;
};
}
};
alert(object.getNameFunc()());// My Object
php闭包
闭包可以保存所在代码块上下文的一些变量和值。PHP在默认情况下,匿名函数不能调用所在代码块的上下文变量,而需要通过使用use关键字
function getMoney() {
$rmb = 1;
$dollar = 6;
$func = function() use ( $rmb ) {
echo $rmb;
echo $dollar;
};
$func();
}
getMoney();
//输出:
//1
//报错,找不到dorllar变量
//use所引用的也只不过是变量的一个副本而已。
function getMoney() {
$rmb = 1;
$func = function() use ( $rmb ) {
echo $rmb;
//把$rmb的值加1
$rmb++;
};
$func();
echo $rmb;
}
getMoney();
//输出:
//1
//1
//加上符号&
function getMoney() {
$rmb = 1;
$func = function() use ( &$rmb ) {
echo $rmb;
//把$rmb的值加1
$rmb++;
};
$func();
echo $rmb;
}
getMoney();
//输出:
//1
//2