array_map php kapsamını belirleme

2 Cevap php

Tüm hey, i zaman özyinelemeli yöntemleri yazmak için zaman array_map kullanın. örneğin

function stripSlashesRecursive( $value ){

    $value = is_array($value) ?
        array_map( 'stripSlashesRecursive', $value) :
    stripslashes( $value );
    return $value;
}

Soru:

say i wanna put this function in a static class, how would i use array_map back to the scope of the static method in the class like Sanitize::stripSlashesRecursive(); Im sure this is simple but i just cant figgure it out, looked at php.net as well.

2 Cevap

array_map() ve usort() gibi işlevler için bir geri arama gibi bir sınıf yöntemini kullanırken, iki-değer dizi olarak geri arama göndermek zorunda. 2 değeri her zaman bir dize olarak yöntemin adıdır. 1 değer bağlamı (sınıf adı veya nesne)

// Static outside of class context
array_map( array( 'ClassName', 'methodName' ), $array );

// Static inside class context
array_map( array( __CLASS__, 'methodName' ), $array );

// Non-static outside of object context
array_map( array( $object, 'methodName' ), $array );

// Non-static inside of object context
array_map( array( $this, 'methodName' ), $array );

array_map takes a callback ilk parametre olarak.

Ve statik bir yöntem için bir geri çağırma gibi yazılır:

array('classname', 'methodname')


Which means that, in your specific case, you'd use :

array_map(array('stripSlashesRecursive', ''), $value);


For more informations about callbacks, see this section of the PHP manual : Pseudo-types and variables used in this documentation - callback.