The site won't become that massive, I don't think I'll end up having more than 500 phrases.
OK then the performance of php arrays probably won't be too bad. Now you need to consider if it is easier or harder to keep them in PHP. Remember you can't add or change them without modifing a PHP file wheras with a database you could create a frontend, unless you are planning on create a frontend to modify the PHP file which could be interesting.
Isn't the file cached though? I can't imagine that having a huge effect on the load time as my previous websites include a bunch of other PHP scripts on every page.
Apache might cache the physical data of the file but PHP doesn't (not until PHP 6 anyway) keep the tokenized version of the file. This means that if you have 10,000 elements in a PHP array they would have to be indexed every time but in a db they would not. The more data you keep the better a database will be at handling it over PHP.
Would a singleton resolve this?
No, its how the language works, when you create an array element or variable, PHP has to store information about where that variable/element can be found; indexing.
My file wouldn't change that often though. Probably once every couple of months once the site is finished.
OK but i'm thinking about the larger picture here? Is it OK to use PHP as a method of data storage? Too which you have to consider the fact that you can't write to a PHP whilst its in use and that there the performance over head of parsing and indexing.
But the PHP file is also in RAM without the overhead of a query.
The file may be kept in RAM but PHP has no optimization for returning frequently used data faster, unlike a database.
Yes, but I need about 20-30 translated strings per page, so it might not be a good idea to request each of them seperately. 30 queries per page per visitor seems like it would cause more load than reading the translation file for all strings in that language and using the ones I need. I could be wrong though, that's why I'm posting here...
You have to try it.
That's a good point, the question is which would be faster in this scenario though.
Like I said, try it. But even if a PHP array was faster I would still use a database, because your PHP array isn't going to be faster for long if more data is added or if you want to update the data.
To summerize: its data, you should probably use a database.
Question:

is there any other reason you are avoiding a database? Is performance on a small scale really that important to you? Surely performance only becomes an issue as things get larger.