繁体   English   中英

将参数传递给函数?

[英]Passing arguments to a function?

我需要学习如何将关联数组传递给函数,以便可以在函数中执行以下操作:

function someName($argums) {
    if (gettype($argums) != 'array' || 
       !array_key_exists('myOneKey', $argums) ||
       !array_key_exists('myOtherKey', $argums)) {              
           return false;
    } 

    /*do other stuff*/
}

(这就是我要在JavaScript中寻找的PHP中这样做的方式。)

所有Javascript对象都是关联数组,因此这很容易。 实际上,您有一些选择,因为一个对象可以拥有自己的属性,从其原型对象继承的属性,具有未定义值的属性以及具有“ falsey”值的属性( undefinednull0""或当然, false )。 不具有属性的对象与具有未定义值的对象之间是有区别的。)

检查对象本身是否具有属性:您使用obj.hasOwnProperty

function someName(obj) {
    if (!obj ||
        !obj.hasOwnProperty('myOneKey') ||
        !obj.hasOwnProperty('myOtherKey'))
        return false;
    }
    // Do other stuff
}

检查对象是否具有属性本身通过其原型:您propName in obj使用propName in obj

function someName(obj) {
    if (!obj ||
        !('myOneKey' in obj) ||
        !('myOtherKey' in obj))
        return false;
    }
    // Do other stuff
}

检查对象是否具有属性(直接或通过原型),并且属性是否未定义:您正在寻找一个未定义的值:

function someName(obj) {
    if (!obj ||
        typeof obj.myOneKey === "undefined" ||
        typeof obj.myOtherKey === "undefined")
        return false;
    }
    // Do other stuff
}

检查该属性是否为false( undefinednull0"" ,或者当然为false ),无论原因为何:只需使用!

function someName(obj) {
    if (!obj ||
        !obj.myOneKey ||
        !obj.myOtherKey)
        return false;
    }
    // Do other stuff
}

无论如何,用法:

var obj = {
    myOneKey: 'fred',
    myOtherKey: 'barney'
};
someName(obj);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM