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 testA
    public $name="name";
    public static function test() 
        //出错! static方法不能使用this
        echo $this->name;
    

self, static, parent  都是静态调用,后跟 ::  如果是变量,要加$

class testA
    //属性也要定义成静态的,不然也是访问不了的
    public static $name="name";
    
    public $mobile="";
    
    public static function test() 
        //可以访问
        echo static::$name;
        
        //不可访问
        echo static::$mobile
    

下面说一下三者区别

self  指代当前定义方法所在的类

static  后期静态绑定的类 ( 实际调用中是哪个类,就代表哪个类,不一定是方法定义所在的类 )

parent 这个也好区别,就是当前定义类的父类

class A 
    public 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 A 
    public 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() 用于先执行父类的方法,除非特意屏蔽父类初始方法就不调用。

参考技术A var lottery=
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代码,能详细解释一下每行的意思么?多谢了的主要内容,如果未能解决你的问题,请参考以下文章

我是一个菜鸟,谁能帮忙解释一下一下代码?

能详细解释下WordPress是啥么??

帮忙解释一下java中类的notify的含义,多谢了

请问C语言是啥啊? 能给我详细的解释一下么? 谢谢了!

PHP 语法 ??意思,有人能解释一下吗? [复制]

等保2.0是什么意思?谁能详细解释一下!