笔记2018年9月27日

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

猜你喜欢

转载自blog.csdn.net/qq_17613195/article/details/82868839