PHP代码,能详细解释一下每行的意思么?多谢了
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP代码,能详细解释一下每行的意思么?多谢了相关的知识,希望对你有一定的参考价值。
public static function init()
parent::init();
// 监听订单处理事件
$static = new static;
Hook::listen('DealerUser', $static);
public static function init()
parent::init();
// 获取当前域名
self::$base_url = base_url();
// 后期静态绑定
wxapp_idself::bindWxappId();
php中this ,self, static 的意思和使用的场景
php中类操作有几个关键字,$this, self, static, parent
$this很好区别,就是实例化后的对象,所以不能在静态方法里调用
class testApublic $name="name";
public static function test()
//出错! static方法不能使用this
echo $this->name;
self, static, parent 都是静态调用,后跟 :: 如果是变量,要加$
//属性也要定义成静态的,不然也是访问不了的
public static $name="name";
public $mobile="";
public static function test()
//可以访问
echo static::$name;
//不可访问
echo static::$mobile
下面说一下三者区别
self 指代当前定义方法所在的类
static 后期静态绑定的类 ( 实际调用中是哪个类,就代表哪个类,不一定是方法定义所在的类 )
parent 这个也好区别,就是当前定义类的父类
class Apublic static function who()
echo __CLASS__;
public static function test()
static::who(); // 后期静态绑定从这里开始
class B extends A
public static function who()
echo __CLASS__;
B::test();
以上代码,输出 B
因为最后调用是从B 这个类调用的
class Apublic static function who()
echo __CLASS__;
public static function test()
self::who();
class B extends A
public static function who()
echo __CLASS__;
B::test();
以上代码,输出 A
因为调用who时指定了当前类,不管最终从哪里调用,都会调用到A里定义的方法
另外 ,这三个关键字可跟在new 后面,来实例化代表的类,就不用重复写类名,方便维护。
参考:php:后期静态绑定
学php可以多看看官方手册
下面我再简单解释下你发的代码。
你这个应该是thinkphp的model吧,init静态方法是model的初始化方法,是一个静态方法,主要用于勾子处理(事件绑定)。这个调用可以从thinkphp的model类中找到。
一般在定义方法时需要覆盖父类方法,都会调用一下 parent::method() 用于先执行父类的方法,除非特意屏蔽父类初始方法就不调用。
index:-1,
count:0,
.........
init:function(id)
,
roll:function()
;
简单,就是对整个页面的初始化。
再详细一点说,就是这样的写法是最近几年开始流行的json写法,把所有的function,所有的变量等,都用
var o =
x: func,
y: "",
z: obj
这样的写法来写。而调用直接用o.x ;o.z()即可
如
<script type="text/javascript">
var obj=
count:0,
timer:0,
init:function(str)
alert("init调用:"+str);
,
exit:function(str)
alert("exit调用:"+str);
;
function someThing()
obj.timer += 1;
obj.init('init');
obj.exit('exit');
alert(obj.timer)
window.onload=function()
someThing();
</script>
之前项目的一段代码:
require([contextPath + '/js/assets/common.js'], function (common)
require(['jquery', 'bootstrap', 'easyuiUtil','jqueryForm','layer'], function ($, bootstrap,
easyuiUtil,jqueryForm,layer)
Namespace('taskinfo.taskinfoList',
init: function () //加载列数据
easyui.util.initDatagrid('#datagrid',
url: contextPath + '/taskinfo/query',
columns:[[
field:'name',title:'任务名称',width:120,
field:'cron',title:'执行周期',width:80,
field:'taskBeanId',title:'任务执行类名',width:80,
field:'status',title:'状态',width:80,formatter: function(value,row,index)
if ('1'==value)
return "启用";
else
return "禁用";
,
field:'createTime',title:'创建时间',width:80,
field:'remarks',title:'备注',width:120
]],
onDblClickRow: function (index,row)
taskinfo.taskinfoList.editPage()
);
,
addPage: function ()
window.top.tempvalues = ;
var addwindow = window.top.layer.open(
type: 2,
area: ['1000px', '90%'],
skin: 'layui-layer-demo DB-style', //加上边框
title: '<div class="portlet-title"><div class="caption"><i class="blue fa fa-database"></i>添加任务</div></div>',
shadeClose: false,
content: contextPath + '/taskinfo/add',
);
window.top.tempvalues.callback = function()
$("#datagrid").datagrid("reload");
window.top.layer.close(addwindow);
,
editPage: function ()
window.top.tempvalues = ;
var selected = $("#datagrid").datagrid("getSelected");
if(selected!=null)
var ewindow = window.top.layer.open(
type: 2,
area: ['1000px', '90%'],
skin: 'layui-layer-demo DB-style', //加上边框
title: '<div class="portlet-title"><div class="caption"><i class="blue fa fa-database"></i>添加任务</div></div>',
shadeClose: false,
content: contextPath + '/taskinfo/update/'+selected.id,
);
window.top.tempvalues.callback = function()
$("#datagrid").datagrid("reload");
window.top.layer.close(ewindow);
else
layer.msg('请选择一个任务!');
,
changeStatus: function ()
var selected = $("#datagrid").datagrid("getSelected");
if(selected!=null)
$.post(contextPath + '/taskinfo/changeStatus/'+selected.id,
function (result)
if (result.code == 200)
$('#datagrid').datagrid('reload');
layer.msg(result.message);
, 'json');
else
layer.msg('请选择一个任务!');
,
deleteTaskinfo: function ()
var selected = $("#datagrid").datagrid("getSelected");
if(selected!=null)
$.messager.confirm('信息提示', '确定要删除吗?', function (sure)
if (!sure)
return;
$.post(contextPath + '/taskinfo/delete/'+selected.id,
function (result)
if (result.code == 200)
top.showInfo('删除成功!');
$('#datagrid').datagrid('reload');
else
top.showInfo('删除失败!');
, 'json');
);
else
layer.msg('请选择一个任务!');
);
$(function ()
$("div.table-scrollable").heigh?gl.guwen.top#document.body).height()-140);
$(window).resize(function()
$("div.table-scrollable").heigh?gl.guwen.top#document.body).height()-140);
);
taskinfo.taskinfoList.init();
);
);
android中的context是啥意思,能详细说一下吗 ?
context其实就是句柄,只不过不像windows一样,每个资源都可以是一个句柄,Android的一个句柄包含了很多全局信息,比如说Activity就是一个句柄官方文档的解释是:Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的操作,如启动Activity,broadcasting和接收intents。 参考技术A context其实就是句柄,只不过不像windows一样,每个资源都可以是一个句柄,Android的一个句柄包含了很多全局信息,比如说Activity就是一个句柄。
官方文档的解释是:Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的执行被Android系统所提供。它允许获取以应用为特征的资源和类型。同时启动应用级的操作,如启动Activity,broadcasting和接收intents。 参考技术B 是Activity 本身了
以上是关于PHP代码,能详细解释一下每行的意思么?多谢了的主要内容,如果未能解决你的问题,请参考以下文章