小编Nin*_*aKC的帖子

PHP数组键可以有别名吗?

这只是一个奇怪的问题,背后的推理纯粹是为了让我更加懒惰.这就是我的意思..

说我有一个网站,在那里的htaccess让漂亮的网址,并把数据发送到$ _GET ["P"]数组键为当前页面".在索引文件中,我设置了页面,我要做的第一件事是在配置文件$ _PAGE数组中设置一些页面设置.现在,假设我有多个页面,我想要具有相同的设置,(在页面中,其他东西可能会稍微改变,与设置不对应.所以目前,我有一些看起来像以下2个php文件.

// index.php
include('page.array.php');

echo '<title>'.$_PAGE[$_GET['p']]['title'].'</title>';

// page.array.php
$_PAGE = array(
    'some/page/' => array(
        'title' => 'This is an example'
    )
)
$_PAGE['some/aliased/page/'] = $_PAGE['some/page/'];
Run Code Online (Sandbox Code Playgroud)

请注意,在页面数组的末尾,为了"别名"页面,我必须在创建数组后将其添加到结尾.

在PHP中是否有任何方法可能我只是不知道,这可能会让我有点懒惰(同时添加到更干净的代码),并使它,所以我可以简单别名的密钥?我注意到以下内容不起作用,我想我的问题是,有没有办法在创建数组期间在同一个数组中创建别名?

这个例子不起作用:

// page.array.php
$_PAGE = array(
    'some/page/' => array(
        'title' => 'This is an example'
    ),
    'some/aliased/page/' => $_PAGE['some/page/']
)
Run Code Online (Sandbox Code Playgroud)

也许是一种从内部引用"this"数组的方法?

如果无法做到这一点,我对"不可能"的答案没有疑问.虽然如果你有更好的方法来解决这个问题,除了我上面描述的方式,为了更懒惰,我会有兴趣阅读它:)

php arrays alias

6
推荐指数
1
解决办法
1947
查看次数

插件选择器元素上的jQuery.live()

好吧,我的问题是,我创建了一个jQuery插件,它将点击和鼠标悬停事件绑定到选择器提供的元素.现在,我需要这些事件,而不是".live"事件,经过大量的搜索,我发现这里的 'a'解决方案

其中,给定的解决方案如下..

(function($) {
  $.fn.liveBindTest = function() {
    return this.each(function() {
      $(this).click(function(){
        console.log('click');
        return false;
      });
    });
  };
})(jQuery);

$('a').live('click', function(){ $(this).liveBindTest(); });
Run Code Online (Sandbox Code Playgroud)

虽然,这没有意义,因为插件不会将实时点击绑定到提供的"选择器".另一方面,它会''将'click事件绑定到选择器元素.(在这种情况下,锚标记,而不是由开发者选择器集动态提供)

上面的示例只是采用漫长的路径将实时点击绑定到所有锚元素.其中,适用于您需要为插件实时绑定特定元素的情况.但我的插件完全基于最终开发人员使用插件提供的选择器.所以这个解决方案意味着开发人员每次都要,

A.在实际启动插件之前,需要手动绑定PLUGIN需要的每个实时事件.有点像..

$('*:not(.complicatedSelectorHere)').live('click', function(){
    $(this).liveBindTest();
});
Run Code Online (Sandbox Code Playgroud)

要么

B.他们需要进入jQuery.plugin.js文件,转到代码的底部,然后修改那里的实时事件.这将是一种丑陋的做事方式,并且根本不可移动,这也是所需要的,便携性.

所以我最后的问题,以确保每个人都清楚..

问题:如何绑定LIVE事件以ALL SELECTORS提供给插件?

请不要在下面提供明显的解决方案,因为它不起作用......

(function($) {
  $.fn.liveBindTest = function() {
    return this.each(function() {
      $(this).live('click', function(){
        console.log('live clicked');
        return false;
      });
    });
  };
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

jquery plugins live css-selectors

5
推荐指数
1
解决办法
2291
查看次数

无法让 nircmd 的 setdisplay 命令在 windows 系统上工作

我遇到了一个名为 nircmd 的 Windows exe,它允许您通过命令行做一些非常酷的事情。我有一个我正在协助的项目,我需要即时调整 Windows 环境的大小,采用最大化的内容并在调整大小后使其最大化。在互联网上搜索时,我偶然发现了 nircmd 很多,但我似乎无法获得我需要工作的功能来处理它。这是:

setdisplay 800 600 24
Run Code Online (Sandbox Code Playgroud)

我在 nircmd 中尝试了使用此功能的所有不同选项,但它在 Windows 7 环境和 Windows Server 上都没有任何作用。我在谷歌上搜索了“nircmd setdisplay 不工作”或“nircmd setdisplay 错误”等,但在互联网上找不到任何关于它的信息。我觉得这很奇怪,因为我已经在我的台式机、笔记本电脑和 Windows 服务器上测试过它,而这 3 个都没有做。

任何人都可以帮助我解决我可能做错的事情吗?或者指向命令行驱动的方向,即时分辨率更改程序?(我也试过 QRes,结果相同,但 Windows Server 给了我一个错误(我现在不记得了)。它必须是命令行驱动的,因为这是一个简单的函数,将在里面一个 php 文件,最后只有少数人访问。

cmd

1
推荐指数
2
解决办法
6316
查看次数

标签 统计

alias ×1

arrays ×1

cmd ×1

css-selectors ×1

jquery ×1

live ×1

php ×1

plugins ×1