Qui
trovi un esempio in PHP4 ad ogni modo la cosa non cambia
di molto come parametro passi l'oggetto al limite con un controllo
del genere:
Codice PHP:
function __construct( $prompt_s, $marker ) {
if ( ! ( $marker instanceof Marker ) ) {
die( "Expected Marker object" );
}
invece di __construct usi il nome della classe
e la posto dei vari public private (modificatori di accesso) usi la solita
var.
In questo modo (possono esserci degli errori non posso
testarlo)
Codice PHP:
<?php
class Question {
var $marker;
var $prompt = "";
var $score = 0;
var $response = "";
function Question( $prompt_s, $marker ) {
$this->prompt = $prompt_s;
$this->marker = $marker;
}
function answer( $response_s ) {
$this->score = 0;
$this->response = $response_s;
if ( $this->marker->mark( $response_s ) ) {
$this->score = 1;
}
}
}
class Marker {
var $condition;
function Marker( $condition_s ) {
$this->condition = $condition_s;
}
function mark( $response_s ) {
return ( $this->condition == $response_s );
}
}
$q = new Question( "how many beans make 5",
new Marker( 'five' ) );
$responses = array( "five", "six" );
foreach ( $responses as $response ) {
$q->answer( $response );
print "response: $response scores {$q->score}\n";
}