国外的PHP程序员面试题目一解

  2008-01-16


一朋友说是国外的PHP程序员面试题目,解之:

题目三:
Create a class, Test3, with the following behavior: The class must take a string of the format  name1=value1:name2=value2:name3=value3 consisting of name and value  pairs, separated by the : symbol. I must be able to enter as many  pairs as I like when I call the class, the only limit is that each  pair is formated as name=value and multiple pairs are separated by  the : symbol. When an object of the class is created it must end up with a variable  for each name=value pair. The name of the variable must be the same  as the name part of the substring and the value of the variable must  be the same as the value part of the substring. For example:

creating an object with new Test3(“firstname=david:lastname=smith”)  must create variables within the class: $firstname = “david”; $lastname = “smith”;

and new Test3(“food1=pasta:food2=chocolate”) must create variables  within the class: $food1 = “pasta”; $food2 = “chocolate”;

I should be able to use any variable names and values provided they  do not include the symbols : or =

You should then write a function print_all that will print the all  the names of the defined variables in the class along with their  values in the following format: Variable 1 – Name = (whatever the actual name is), Value = (whatever  the actual value is) Variable 2 – Name = (whatever the actual name is), Value = (whatever  the actual value is) Variable 3 – Name = (whatever the actual name is), Value = (whatever  the actual value is) and so on until all the variables are listed.

The last line of output of the print_all function should be the words  “The original input was " followed by a string that is an exact  representation of the string parameter supplied when creating the  class object.

For example, if you did new Test3(“firstname=david:lastname=smith”)  then the print_all function should output:

Variable 1 – Name = firstname, Value = david Variable 2 – Name = lastname, Value = smith The original imput was (“firstname=david:lastname=smith”)

This must work for any input string that has the correct format and  you may not store the complete input string or directly output it to  produce the last line of the print_all function output as that would  be too easy.