问题标签 [magic-function]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 什么时候/应该在 PHP 中使用 __construct()、__get()、__set() 和 __call()?
一个类似的问题讨论了__construct
,但我把它留在了我的标题中,供搜索找到这个问题的人使用。
显然, __get 和 __set 带有一个参数,即正在获取或设置的变量。但是,您必须知道变量名称(例如,知道该人的年龄是 $age 而不是 $myAge)。因此,如果您必须知道变量名,尤其是在使用您不熟悉的代码(例如库)时,我不明白这一点。
alias - 在 IPython 中,如何为 %magics 创建别名?
假设我想为 %edit -x 创建别名 %xed。我该怎么做?
php - 魔术函数和继承
我想知道是否可以创建一个扩展另一个魔术对象的魔术对象(使用 PHP)。
php - PHP中empty()的神奇功能是什么?
不应该__isset
,因为isset()
与empty()
php - 普通 setter 和 getter 之间的区别
我为我的会话变量使用了一个神奇的 getter/setter 类,但我看不出普通的 setter 和 getter 之间有什么区别。
编码:
现在我注意到的第一件事是我必须调用$session->_unset('var_name')
来删除变量,这没有什么“神奇”的。
其次,当我尝试使用$session->some_var
它时不起作用。我只能使用$_SESSION['some_var']
.
我看过 PHP 手册,但功能看起来和我的一样。
我是不是做错了什么,或者这些功能真的没有什么神奇之处。
python - Mercurial/Python - 下划线函数有什么作用?
在 Mercurial 中,许多扩展将其帮助/语法字符串包装在对下划线函数的调用中,如下所示:
这让我感到困惑,因为它似乎没有必要(编写扩展指令没有提到它)并且似乎没有在类中定义 _,所以我想知道这是否是我没有的一些特殊语法'不明白,也许另一种说法是 lambda,或者也许是恒等函数?另外,我想知道这种方法(无论它是什么)的好处是像文档建议的那样仅对原始字符串有什么好处。
我在 Python 文档中看到的任何内容都没有提到这样的函数,所以我不确定这真的是 Python 问题还是 Mercurial 问题。
这里有两个使用这种结构的例子(查看cmdtable
文件底部附近的字典)
php - 函数的魔术函数__call()?
php 中的魔术函数 __call() 用于类中。是否有任何类似的魔术功能,而不是功能?就像 __autoload() 用于函数一样。
例如像这样
php - 在数组类属性上使用 __get() 以自动传播类
我有一个 activerecord 模型,其中包含一个数组:“$sessions”。我想做的是把它变成一个二维数组,以便按以下方式索引:
现在要在上面添加奶油,我想这样做,以便用户可以这样做:
并且__get
将了解类变量(“$sessions”)中的该位置是否已经存在一个对象,并将该属性添加/编辑到该类,否则它将在该位置创建一个名为“Session”的新类。
我有点困惑如何让 PHP(如果可能)在数组的索引上获得 __get。
python - python内置函数与魔术函数和覆盖
考虑以下代码:
输出让我感到惊讶:
- 不
str(a)
应该映射到魔术方法a.__str__()
吗? - 如果我删除了 custom
ClassA.__str__()
,那么ClassA.__getattribute__()
仍然没有接听电话。怎么来的?
php - 从 Magento 集合中获取数据
我有一个集合,其中包含一行数据。如果我跟随,
它给了我一个像下面这样的数组,
但是当我这样做时,$collection->getField1()
它会说未定义的方法。据我所知,php magic getter 应该像这样工作。不是吗?
任何想法如何在没有 foreach 构造的情况下获得此值。