I'm afraid not. What I said applies to that sentence. There isn't really a rule.According to your answers, I think below sentences have the same principles as your example sentences and explanations. Am I right?
This is fine.Sing an old song for us.
This doesn't sound as likely as the one with "for" but "sing to us" is sometimes used. You might sing to a baby for instance to make it sleep. "Sing to" is used to mean the song is directed at someone for some reason.Sing an old song to us.
Only "for" works here.Book a ticket for/to her.
These do not mean the same. Suppose I ask a singer to sing a song that my wife and I like. If she sings it, she is singing it for us, but she is singing it to the entire audience. (I think I used the same example in another thread here recently, but I'm not sure who I replied to there.)Q: According to your answers, I think below sentences have the same principles as your example sentences and explanations. Am I right?
Sing an old song for us. Sing an old song to us.
"Book a ticket for her" is how I would ask a travel agent to arrange flights for my wife. "Book a ticket to her" has no meaning to me; it is not something one would say in English.Book a ticket for/to her.