I agree with the other poster. I tend to spend less money if I have cash on hand.
I take both cash and credit cards. We allot a specific amount of cash each day to take in the parks. (Usually $150.00 when not on the dining plan and $100.00 when we are. This is way more than we spend.) Whatever left over money we have from the day before, we add in the extra to bring it up to the $150.00 or $100.00.
Since we stay for ten days and we visit most parks a couple of times during our stay, I usually wait on buying the souveniers until the last couple of days. This way, I don't do the compulsive buying thing.
Hope this helps, Lisa