Perfecto, llegamos al verdadero problema.
Primero, instanceof está disponible a partir de PHP5, con PHP4 simplemente no funcionará. En su lugar debería utilizar is_a() que está disponible a partir de PHP 4.2 ... como te dije en
tu otro tema esta clase tiene sintaxis de PHP4 ... como sea, aquí es donde está lo raro, ya que dices que utilizas la versión 4.2.1, ¿completamente seguro de eso?, ¿utilizaste alguna instalación particular?.
Habría que ver qué de especial tiene tu version/instalación de PHP, algo no está funcionando. Igual repito mi recomendación inicial: cámbiate a PHP5; PHP4 ya es obsoleto, ¿qué razón tienes para no hacerlo?.
Entendiendo el código, lo que se pretende hacer con is_a() e instanceof es comprobar que una variable es un objeto de determinado tipo, ya que tienes problema con la definición de dichas funciones (aunque instanceof es un operador, no una función), podrías probar utilizando
get_class(), que te regresa el nombre de la clase.
Por ejemplo, en la línea que mencionas te muestra el error se tiene esto:
Código php:
Ver original$content = (is_a($parFormat, 'ParFormat') && count($this->elements) != 0 && empty($this->emptyPar)) ?
'\par ' : '';
Debería cambiarse por esto:
¿observas?, se obtiene el nombre de la clase y se compara como un string común.
... para no tener que cambiar todo el código donde aparece is_a(), igual podrías definirla tú mismo e imitar su funcionamiento. Podrías colocar lo siguiente en tuArchivo.php, antes de incluir la clase:
Código php:
Ver original<?php
function is_a($objeto, $clase) { return ($obClass == $clase);
}
}
// Y, entonces, ahora sí está definida is_a() con un comportamiento similar a la función nativa ...
require_once("Practica/rtf/Rtf.php");
$rtf = new Rtf();
$sect = &$rtf->addSection();
$sect->writeText('<i>Hello <b>World</b></i>.', new Font(12), new ParFormat('center'));
$rtf->sendRtf('Hello World');
?>
... pero no habría necesidad de nada de esto si utilizaras PHP5
![sonriente](http://static.forosdelweb.com/fdwtheme/images/smilies/smile.png)
...