问题标签 [scope-resolution]

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.

0 投票
5 回答
2816 浏览

php - 访问方法的不同方式

我已经看到有两种不同的方法可以访问类中的方法。行为是否有任何差异,或者它们是否纯粹是同一操作的替代语法?

0 投票
1 回答
934 浏览

c++ - 从另一个命名空间内访问 C++ 全局命名空间

在下面的 C++ 代码中,foobar首先为单个double参数定义 ,然后再次为类型为 的单个参数定义Foo。两者都在全局命名空间中定义。

one命名空间中,定义了进一步的重载foobar,带有一个类型的参数Bar。从这个版本开始,带有参数 (42.0)foobar的非限定调用将失败。对 的类似调用,这次使用 (::) 范围解析运算符限定,也带有参数,但会成功。foobardoublefoobardouble

另一方面,foobar使用 type 参数对的非限定调用Foo成功。使用范围解析运算符限定foobar的参数调用也成功。Foo

为什么这两种情况表现不同?我同时使用 gcc 4.7 和 clang++ 3.2。

0 投票
1 回答
1096 浏览

php - 使用范围解析运算符 (::) 时获取继承类的类名

可能重复:
PHP get_class 的功能

对于一个小的 ORM-ish 类集,我有以下内容:

希望这段代码能打印出来:

但是,相反,它打印records. 我试过self::table()了,但结果是一样的。

编辑,在评论中的一些问题之后 table()是一种方法,它只是将类的名称映射到其对象所在的表:Order生活在ordersPayment生活在paymentsrecords 不存在!)。当我打电话时Payments::find(),我希望它在桌子上搜索payments,而不是在桌子上records,也不在桌子上orders

我究竟做错了什么?如何获取调用 ::is 的类的类名,而不是定义 is 的类?

重要的部分可能是get_class(),无法返回正确的类名。

0 投票
6 回答
10681 浏览

php - 从继承的类调用私有方法

我想在我的简单 ORM 中用 PHP 实现一个钩子系统:

这会导致致命错误:

致命错误:从上下文“记录”中调用私有方法 Payment::before_save()

说得通。

我可以将范围更改为 public,但这看起来很难看:除了 Payment 之外没有人与before_save(). 恕我直言,最好保持私密。

如何让 Record 调用继承自 Record 的类的私有方法?

0 投票
3 回答
31483 浏览

php - 如何在php中调用父类方法

这是工作代码,但我想知道不使用另一个对象(注释$foo)我如何使用使用对象printItem()的方法。oop 编程概念的新手,所以问起来可能很弱,但真的找不到:(class Foo$bar

我使用范围解析运算符来使用printItem()of Foo class,现在我的查询是什么时候可以使用此功能,那么创建对象有什么用?何时在适当的编码环境中使用范围解析运算符。

0 投票
2 回答
3733 浏览

c++ - ::new 是什么意思?

检查 MS directX 11 DXUT 示例时,出现以下代码:

这可以在我的 DXSDK 版本(2010 年 6 月)的第 428 行的 DXUTmisc.h 中找到。我想知道::new的事情....我正在尝试谷歌并搜索堆栈溢出,但是当我在搜索栏中键入“::new”时,搜索引擎似乎正在丢弃两个冒号... .

0 投票
2 回答
613 浏览

php - 根据动态变量(PHP 5.2)引用模型类型时解析运算符出错

背景资料:

我试图通过将一个公共函数从子类移动到它们扩展的基类来简化我的 Yii 应用程序的结构。

我将loadModel($id)功能从用户(子)控制器移动到基本控制器。

之前,在 UserController.php 中。这有效:

之后,我把上面的函数去掉了,放到Controller.php里面,UserController继承的,还有很多其他的:

问题:

我已经在我的本地 PC 上尝试了这个,运行 PHP 5.4.4,它按预期工作,但是当它被上传到运行 PHP 5.2 的测试服务器时,这会引发 HTTP 错误 500(内部服务器错误)。查看错误日志,错误为PHP Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIMerror,指的是第三行的解析操作符。

问题:

  • 在这种情况下,解析运算符在 PHP 5.2 上失败的任何原因?和,
  • 是否有任何解决方法可以使这项工作具有相同的效果?

==================

附加信息:

我正在使用的全局模型名称函数,它返回模型名称,即:“用户”:

0 投票
1 回答
885 浏览

ruby-on-rails - rails 3 使用文件夹名称作为 namspace 引发未初始化的常量错误

我正在尝试将应用程序从 rails 2.3 升级到 3.0并且它有一个文件

其中包含

我相信Utility::Interface::Import是其文件路径中的文件夹名称,但用作名称空间

此代码在 rails 2.3 中运行良好,但是当我尝试使用 rails 3.0.6 运行时,它会抛出 NameError

仅供参考:rails 2.3 使用 ruby​​ 1.8.7,rails 3.0.6 使用 ruby​​ 1.9.2

如果我的理解不正确,请纠正我

0 投票
4 回答
385 浏览

c++ - this->field 和 Class::field 之间的区别?

我想知道 C++ 中的一些东西。

承认以下代码:

this->bar在我的课堂上,和之间有什么区别Foo::bar吗?是否存在无效的情况?

0 投票
2 回答
600 浏览

c++ - 为什么范围解析不适用于覆盖的变量?

当我查看下面的代码示例时,我认为d.B::num是一样的,b.num但事实并非如此。它似乎是一个不同的变量,有自己的地址。当我单击运行按钮时,我会看到三个变量中的每一个b.numd.numd.B::num具有其相关值(分别为 3、4 和 5)。

为什么呢?d.B::num如果不一样的话,这里到底是什么b.num