VBScript [===] function

A VBScript equivalent of PHP’s ===

Function [===](a, b)

    [===] = false

    Dim tmp_a,tmp_b
    Dim key
    If (isArray(a) or isArray(b)) or (isObject(a) or isObject(b)) Then

        If isObject(a) and isObject(b) Then
            If a.count <> b.count Then Exit Function

            tmp_a = a.keys : tmp_b = b.keys
            If Not [===](tmp_a,tmp_b) Then Exit Function

            tmp_a = a.Items : tmp_b = b.Items
            If Not [===](tmp_a,tmp_b) Then Exit Function
            [===] = true
        End If

        If isArray(a) and isArray(b) Then
            If uBound(a) <> uBound(b) Then Exit Function

            For key = 0 to uBound(a)
                If Not [===](a(key),b(key) ) Then Exit Function

            [===] = true
        End If

        [===] = eval(a = b and vartype(a) = vartype(b))
    End If

End Function

Please also note that php.vbs offers community built functions and goes by the McDonald’s Theory. We’ll put online functions that are far from perfect, in the hopes to spark better contributions. Do you have one? Then please just:

Other PHP functions in the language extension