magic函数总结

magic_quotes_gpcmagic_quotes_runtime

这两个函数如果在php.ini设置为ON的时候,就会为我们引用的数据碰到单引号'和双引号"以及反斜线 / 是自动加上反斜线,帮我们自动转译符号,确保数据操作的正确运行。

 

__construct()和__destruct()
构造函数__construct()和析构函数__destruct()

 

__get, __set, __isset, __unset
当对一个属性进行操作的时候,如果该属性不可获得(不存在,或者当前环境不可调用该属性,例如在子类中调用一个父类的private属性),则调用以上方法的其中一个。

 

__call($func,$para)
当尝试调用一个对象的方法的时候,如果该方法不存在,则调用__call($func,$para)方法。需要注意的是,当你在一个子类调用父类的private的方法,或者在实例里调用类的非protect方法的时候,并不会调用__call(),这是__call和__get等属性操作方法的一个不同点。

 

__sleep(), __wakeup()
__sleep是当序列化(serialize)一个实例的时候被调用,__wakeup()则是在反序列化(unserialize)的时候被调用。

 

__toString()
当直接打印一个对象的时候,这个方法将会被调用。

 

__set_state()
var_export可以把一个集合导出为一串字符串,这些字符串是一些可执行的PHP代码。

 

__clone()

 

__autoload()
当创建一个实例化的时候,如果对应的类不存在,__autoload()将会被执行,这个函数有一个参数,为所要创建的实例对应的类名。

在网络搜索后,以下是关于“magic in IT context”的相关信息整合: --- Magic在IT领域的上下文中通常指代一些自动化、智能化或者隐藏复杂性的技术实现方式。以下是一些常见的解释和应用方向: 1. **魔术方法(Magic Methods)** 在编程语言中,“魔法方法”是指某些特殊命名的方法,它们提供了对象行为的扩展功能。例如,在Python中,`__init__()` 和 `__str__()` 是典型的魔法方法,用于初始化对象或定义字符串表示形式。 2. **Magical Automation Tools (自动化工具)** Magic一词常被用来描述那些能够简化开发人员工作流的技术。比如Ansible中的Playbooks可以通过简单的YAML文件自动完成复杂的服务器配置任务,这种体验被称为“magical”。 3. **Magic Commands for Jupyter Notebooks** 在数据科学领域,Jupyter Notebook支持一系列称为“magic commands”的命令行指令,这些命令以百分号 `%` 开头,用于增强交互式计算环境的功能。例如: ```python %timeit %matplotlib inline ``` 4. **Network Management with Marvis Assistant** Juniper Networks推出的Marvis虚拟网络助手利用了先进的自然语言处理(NLP)来理解用户的意图,并提供有关网络性能分析以及故障排查的帮助。它有时也被形容为一种“魔力”,因为它能迅速找到问题根源。 5. **Cloud Magician Services** 某些云计算服务商提供的解决方案可能也会冠名“Magic Service”。这类服务往往强调无需深入底层架构知识即可轻松部署高可用性系统的能力。 6. **Security Contexts – Magic Cookies & Tokens** 计算机安全方面,“magic cookie”是一种小型的数据片段,主要用于验证会话状态或其他临时信息传递过程中保持一致性;而OAuth tokens则类似于这样的一种机制但更加正式化。 --- ### 示例代码展示 Python 中的魔法方法 ```python class MagicalClass: def __init__(self, value): self.value = value # 定义加法运算符的行为 def __add__(self, other): return MagicalClass(self.value + other.value) # 返回类实例的非正式字符串表示形式 def __str__(self): return f"Value is {self.value}" obj1 = MagicalClass(10) obj2 = MagicalClass(20) result = obj1 + obj2 # 调用了 __add__() 方法 print(result) # 输出由 __str__() 控制的结果 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值