Pchp.Library.Arrays.VisitEntryOnWalk C# (CSharp) Method

VisitEntryOnWalk() private static method

Visits an entry of array which array_walk(Context, PhpHashtable, IPhpCallable, PhpValue) or array_walk_recursive(Context, PhpHashtable, IPhpCallable, PhpValue) is walking through.
private static VisitEntryOnWalk ( Context ctx, PhpValue>.KeyValuePair entry, PhpValue>.IDictionary array, IPhpCallable callback, PhpValue args ) : void
ctx Pchp.Core.Context
entry PhpValue>.KeyValuePair
array PhpValue>.IDictionary
callback IPhpCallable
args Pchp.Core.PhpValue
return void
        private static void VisitEntryOnWalk(Context ctx,
            KeyValuePair<IntStringKey, PhpValue> entry,
            IDictionary<IntStringKey, PhpValue> array,
            IPhpCallable callback, PhpValue[] args)
        {
            Debug.Assert(args[0].IsAlias);

            // fills arguments for the callback:
            args[0].Alias.Value = entry.Value.GetValue();
            args[1] = PhpValue.Create(entry.Key);

            // invoke callback:
            callback.Invoke(ctx, args);

            // loads a new value from a reference:
            if (entry.Value.IsAlias)
            {
                entry.Value.Alias.Value = args[0].Alias.Value;
            }
            else
            {
                array[entry.Key] = args[0].Alias.Value;
            }
        }