Le serveur

<?php
  require_once "XML/RPC/Server.php";
  
  function fpl_hello($params) {
    global $XML_RPC_erruser;
 
    $param=$params->GetParam(0);
    if (!XML_RPC_Value::isValue($param)) return($param);
    $nom=$param->structmem('nom')->scalarval();
    $prenom=$param->structmem('prenom')->scalarval();
    
    $val = new XML_RPC_Value("Bonjour ".$nom.', '.$prenom, 'string');
    return new XML_RPC_Response($val);
  }

  $serv=new XML_RPC_Server(array('fpl.hello'=>array('function'=>'fpl_hello','docstring'=>'Bonjour')));
?>

Le client

<?php
	require_once "XML/RPC.php";

	$params=array(new XML_RPC_Value(array('prenom'=>new XML_RPC_Value('Fred','string'),'nom'=>new XML_RPC_Value('Ple','string')),'struct'));
	$msg=new XML_RPC_Message('fpl.hello',$params);
	$cli=new XML_RPC_Client('/index.php','127.0.0.1');
	$resp=$cli->send($msg);

	var_export($resp);
?>