常见的几种魔术变量

自行脑补 自行脑补     2022-09-30     519

关键词:

如果在类中变量,方法被设置权限,外部想要设置,访问可以使用参考以下:

__set和__get

class Tets{
    private $a = ‘‘;
    public function __set($var,$val){
        $this->$val = $val;
    }
    public function __get($var){
        return $this->$var;
    }
}

$test = new Test();
$test->a = ‘abc‘;     //如果没有设置__set会报错,因为外部不能调用private的变量
var_dump($this->a);

__isset

class Test{
    private $abc = ‘abc‘;

    public function __isset($var){
        return isset($this->$var)?true:false;
    }
}
$test= new Test();
var_dump(isset($test->abc));

 __unset

class Test{
    private $abc = ‘abc‘;

    public function __unset($var){
        unset($this->$var);
    }
}
$test = new Test();
unset($test->abc);

__call

class Test{
    public function __call($func,$arguments){
        echo($func."<br/>");
        print_r($arguments);
    }
}

$test = new Test();
$test->go(1,‘ok‘); //当实例化对象没有找到方法,就会自动调用__call();

__callStatic

class Test{
    public static function __callStatic($func,$arguments){
                echo($func."<br/>");
        print_r($arguments);
    }
}
Test::go(1,‘ok‘);  //没有找到类方法就自动调用__callStatic()

__invoke

class Test{
    public function __invoke($arg){
        var_dump($arg);
    }
}

$test = new Test();
$test(‘go....‘);  //直接将实例化的对象当做函数来执行就用__invoke()

__toString

class Test{
    public function __toString(){
        return "hello;;;";
    }
}

$test = new Test();
echo $test;   //直接打印实例化对象,就可以使用__toString

 

 

其他常见魔术变量

__clone() 当对象被克隆时,被调用

__construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用。

__destruct() 当删除一个对象或对象操作终止的时候,调用该方法。

系统常量

__FILE__ 当前文件名
__LINE__ 当前行数
__FUNCTION__ 当前函数名
__CLASS__ 当前类名
__METHOD__ 当前对象的方法名

js面向对象的几种常见写法

下面是一个简单的js对象:定义Circle类,拥有成员变量r,常量PI和计算面积的成员函数area(),常用为第一种和第三种。1.工厂方式varCircle=function(){varobj=newObject();obj.PI=3.14159;obj.area=function(r){returnthis.PI*r*r;}returnobj;}varc=newCircle();alert(c. 查看详情

常见的几种算法?

1、冒泡排序冒泡排序可以算是最经典的排序算法了,两层for循环,里层循环中判断相邻两个元素比较大小,如果前者比后者大,两个元素交换位置;外层循环一次,就能将数组中剩下的元素中最小的元素“浮”到最前面,所以... 查看详情

uml类图常见的几种关系

关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)1.泛化(Generalization)    就是通常意义上的继承,是一般和特殊的关系,子类特化了父类的所有特... 查看详情

函数指针常见的几种

查看详情

loadrunner的几种常见错误

转自网络loadrunner的几种常见错误及解决办法1录;解决:、;在录制选项option-network-;2在回放脚本时出现的错误;Action.c(33)Error-35061;解决方法:可以用web_set_max_html;ParamName=Correlat;LB=c,;RB=nloadrunner的几种常见错误及解决办法1... 查看详情

类之间存在的几种常见关系

USES-A:依赖关系,A类会用到B类,这种关系具有偶然性,临时性。但是B类的变化会影响A类。这种在代码中的体现为:A类方法中的参数包含了B类。 关联关系:A类会用到B类,这是一种强依赖关系,是长期的并非偶然。在代码... 查看详情

r常见的几种常见统计图

1,向日葵散点图2,热图 (颜色越深,数值越大)3,折线图(散点图),绘制散点图集用paris(data.frame)  查看详情

(转载)plc内部电路常见的几种形式

摘要:本文主要分析了数字量输入时PLC内部电路常见的几种形式,并结合传感器常见的NPN和PNP输出,给出了和不同的PLC电路形式连接时的接线方法。Summary: ThisarticlehasmainlyanalyzedseveralinternalcircuitformsofPLCdigitalinputmodule,andunifiedco... 查看详情

java常见的几种运行时异常runtimeexception

 常见的几种如下: NullPointerException-空指针引用异常ClassCastException-类型强制转换异常。IllegalArgumentException-传递非法参数异常。ArithmeticException-算术运算异常ArrayStoreException-向数组中存放与声明类型不兼容对象异常IndexOutOfBo... 查看详情

python接口测试常见的几种请求方式

参考技术A1.get请求2.query请求3.form表单 查看详情

常见的几种异常类型exception

常见异常类型:Java中的异常分为两大类:     1.CheckedException(非RuntimeException)  2.UncheckedException(RuntimeException) 算数异常类:ArithmeticExecption 空指针异常类型:NullPointerException 类型强制转换类型:Cl 查看详情

js进阶-闭包的几种常见形式

作用域链://作用域链vara=1;functiontest(){varb=2;returna;}alert(test());//弹出1;alert(b);//不能获取b//scopechainvara=1;functiontest(){varb=2;functiontest1(){varc=3;alert(a);alert(b);alert(c);}test1();}test();//弹出1,弹 查看详情

ajaxjquery中ajax请求常见常用的几种方法(代码片段)

文章目录jQuery中AJAX请求常见常用的几种方法1.$.ajax()方法2.$.get()方法和$.post(方法)3.$.getJSON()方法jQuery中AJAX请求常见常用的几种方法1.$.ajax()方法可以在服务器端请求失败后依然调用回调函数 $.ajax( "url":"send/array/one.html&... 查看详情

性能测试的几种常见方法

 性能测试的几种常见方法(转)  负载测试:负载测试是用户观点的测试行为。简单说来就是负载测试就是让系统在一定得负载压力下进行正常的工作,观察系统的表现能否满足用户的需求。  用户的需求从何而来?需... 查看详情

常见的几种异常类型-熟记

今天把几个常见的异常总结一下,希望自己能熟记,别忘记!!! 1.NullPointerException:空指针异常。菜鸟编程经验发现这个异常是经常会发生的,属于运行时异常。举例:publicstaticvoidmain(String[]args)Stringstr=null;//此处报空指针异... 查看详情

获取post请求的几种常见方式

通常从httppost请求获取数据的方法如下:1.request.getInputStream()2.request.getReader()3.request.getParameterMap()系列4.通过spring框架中的RequestBody或RequestParampublicstaticStringreq2RawString(HttpServletRequestrequest)&nbs 查看详情

java中常见的几种的溢出

...,经常会导致各种各样的溢出,今天本文就举例说明几种常见的溢出堆溢出堆溢出是最常见的一种溢出。导致原因:堆中没有足够的空间储存新生成的实例对象publicstaticvoidmain(String[]args){List<TestCase>cases=newArrayList<TestCase>(... 查看详情

matlab求解线性方程组ax=b的几种常见方法matlab求解线性方程组ax=b的几种常见方法

原文:http://blog.csdn.net/stzh_bk/article/details/70983856例如方程组:法1:左除法>>A=[31-1;124;-145];b=[3.6;2.1;-1.4];>>x=A x=     1.4818   -0.46060.3848& 查看详情