小编abu*_*uba的帖子

字符串作为javascript中数组的键

为什么使用字符串作为数组的键,控制台显示没有这些声明值的数组,并且在没有显示键为字符串的值时进行迭代?虽然我可以获得它们的价值.

>> var arr = [ 0, 1, 2, 3 ];
   undefined

>> arr["something"] = "aught";
   "aught"

>> arr
   [0, 1, 2, 3]

>> arr["something"]
   "aught"

>> for( var i = arr.length; i--; console.log( arr[ i ] ) );
   3
   2
   1
   0
Run Code Online (Sandbox Code Playgroud)

我知道数组是在javascript引擎中实现了某种"枚举"接口的对象.最有趣的是,解释器不会抛出任何警告或错误,因此我花了一些时间来搜索数据可能丢失的位置.我现在,我错了,我用console而不是console

javascript arrays

39
推荐指数
2
解决办法
9万
查看次数

在PHP中重新定义常量

是否可以重新定义由define函数定义的php中的常量?我有一个包含几个常量的类,其中包含用户数据.我正在尝试将该类用于多个用户.

define('ALLEGRO_ID', 'id');
define('ALLEGRO_LOGIN', 'login');
define('ALLEGRO_PASSWORD', 'passwd');
define('ALLEGRO_KEY', 'key');
define('ALLEGRO_COUNTRY', 123);

$allegro = new AllegroWebAPI( );                
$allegro -> Login();
Run Code Online (Sandbox Code Playgroud)

我没有写这个课,但由于时间限制,我正在使用它.我不知道为什么这个类的创建者是defined用户数据而不是在实例中使用变量.

我知道常量应该是常数(显然!),但我正在寻找一种技巧来重新定义它们.

php constants

36
推荐指数
5
解决办法
6万
查看次数

如何使用反射获取继承属性的值?

如何使用反射获取继承的属性值?我尝试BindingFlags但仍然触发NullReferenceException

object val = targetObject.GetType().GetProperty("position", BindingFlags.FlattenHierarchy).GetValue(targetObject, null);
Run Code Online (Sandbox Code Playgroud)

position 是一个公共财产,具有声明的价值.

编辑:

class myParent
{
    public float[] position;
    public myParent()
    {
        this.position = new float[] { 1, 2, 3 };
    }
}

class myChild : myParent
{
    public myChild() : base() { }
}

myChild obj = new myChild();
PropertyInfo p = obj.GetType().GetProperty("position", BindingFlags.Instance | BindingFlags.Public); 
Run Code Online (Sandbox Code Playgroud)

我尝试了几种与BindingFlags的组合,但p总是为null :(,

c# reflection

9
推荐指数
1
解决办法
8153
查看次数

Yii导入或包含

我遇到了导入php文件的问题.

为什么这样有效:

include( Yii::getPathOfAlias( 'ext.payu.payU').'.php' );
Run Code Online (Sandbox Code Playgroud)

但那不是:

Yii::import( 'ext.payu.payU');
Run Code Online (Sandbox Code Playgroud)

文件payU.php:

include_once( dirname(__FILE__) . "/sdk/openpayu.php"); //this is a valid path
class payU{ }
Run Code Online (Sandbox Code Playgroud)

include autoload yii

8
推荐指数
1
解决办法
1万
查看次数

如何优化此switch语句?

我尝试在我的应用程序中使用,简单的比较器通过传递字符串过滤器来过滤一些数据而不是例如.传递给[].filter Comparator应该返回一个过滤器的函数.

   var comparator = function( a, b, c ) { 
        switch( b ){
            case '>=': return function() { return this[a] >= c;}; break;
            case '<=': return function() { return this[a] <= c;}; break;
            case '<':  return function() { return this[a] < c;}; break;
            case '>':  return function() { return this[a] > c;}; break;
            case '=':  return function() { return this[a] == c;}; break;
            case '==': return function() { return this[a] === c;}; break;
            case '!=': return function() { …
Run Code Online (Sandbox Code Playgroud)

javascript optimization

4
推荐指数
1
解决办法
716
查看次数

骨干路由器事件

Backbone.Router在执行路由之前和之后是否存在事件?我的应用程序使用jQuery.mobile并在执行路由之前需要调用$ .mobile.changePage,并且控制器可以通过$ .activePage访问当前显示的页面.当控制器的动作完成后,我应该触发create文件上的事件,以便通过$ .mobile新创建的元素"增强".我做了这个替换loadUrl

Backbone.history.loadUrl = ( function( old  ){
    return function() {  
       Router.trigger("all:before");   
       old.apply( Backbone.history, arguments );
       Router.trigger("all:after" );
    }
})( Backbone.history.loadUrl  );



 //Router.initialize
 initialize: function() {
     this.bind( "all:before", function( ) {  
         $.mobile.changePage( window.location.hash.split( "/" )[0] || "home", { changeHash:false} );
     });

     this.bind( "all:after", function() {
       $.mobile.activePage.trigger('create'); 
     });  
  }
Run Code Online (Sandbox Code Playgroud)

可能有一些像这样的内置事件吗?

javascript backbone.js backbone-events

4
推荐指数
1
解决办法
1万
查看次数

如何通过其属性获取prestashop过滤产品

我没有prestashop的经验.我正在尝试获取与其属性的某个值匹配的所有产品.

[编辑]

现在我通过使用获得所有产品Product::getProducts.之后我通过array_filter过滤结果数组.我想知道直接检索过滤产品的方法,过滤在数据库中进行.例如.传递函数或字符串过滤器之类的 Product::getProductsBy( 'product_id > 10')

prestashop

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

Jquery mobile - onhashchange问​​题

$.mobile在我的应用程序中使用.我必须创建自己的路由系统.我绑定观察者,hashchange并从中提取有趣的数据location.hash.我有一个问题- jQuery.mobile将删除井号location.hash从它是否有一个斜杠(如'lalal/#controller/action/param''lalal/controller/action/param'$.mobile黄色盒子说Error Loading Page.

我试图首先取消绑定现有的"hashchange",但是页面没有自动加载(我需要的).

如何防止哈希的更改,但是jQuery必须仍然自动加载页面(例如,通过在元素中声明的ID data-role='page')?.下面是我的路由器类的一个片段:( Router.load不会改变location.hash)

__construct: function() {   

        var that = this; 
        $( window ).bind( "hashchange" , function( e ) {
            //e.stopImmediatePropagation()
            that.load( this.location.hash  ); 

        });  
    }
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-mobile hashchange

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