7.47 Java
7 Index des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes prédefinies ->Exemples . Java Servlet SAPI . java_last_exception_clear . java_last_exception_get
|
7.47.7 Exemples
Exemple avec Java |
<?php // créer une instance de la classe Java java.lang.System dans PHP $system = new Java('java.lang.System');
// accède aux propriétés print 'Java version='.$system->getProperty('java.version').' <br>'; print 'Java vendor=' .$system->getProperty('java.vendor').' <br>'; print 'OS='.$system->getProperty('os.name').' '. $system->getProperty('os.version').' on '. $system->getProperty('os.arch').' <br>';
// Exemple avec java.util.Date $formatter = new Java('java.text.SimpleDateFormat', "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
print $formatter->format(new Java('java.util.Date')); ?>
|
Exemple AWT |
<?php // Cet exemple ne fonctionne qu'en mode CGI.
$frame = new Java('java.awt.Frame', 'PHP'); $button = new Java('java.awt.Button', 'Hello Java World!');
$frame->add('North', $button); $frame->validate(); $frame->pack(); $frame->visible = True;
$thread = new Java('java.lang.Thread'); $thread->sleep(10000);
$frame->dispose(); ?>
|
Notes:
-
new Java()
crée une nouvelle instance d'une classe,
si un constructeur valable est disponible. Si aucun paramètre n'est passé,
et le constructeur par défaut est utile pour accéder à ces classes
telles que "java.lang.System", qui fournissent leur fonctionnalités via
des méthodes statiques.
-
Lors de l'accès aux membres d'une instance, PHP commencera par rechercher
les membres Bean, puis les champs publics. En d'autres termes,
"
print $date.time
" sera d'abord résolu par
"
$date.getTime()
", puis par "
$date.time
";
-
Les membres statiques et d'instance sont accessibles avec la même
syntaxe. De plus, si un objet est de type "
java.lang.Class
",
les membres statiques de la classe (champs et méthodes) sont accessibles.
-
Les exceptions sont transformées en alertes PHP, et résultat NULL.
Les alertes peuvent être supprimées en préfixant l'appel
par l'opérateur
>
. Les fonctions suivantes
peuvent être utilisées pour lire et effacer la dernière
erreur remontée :
-
Les surchargements de fonctions sont des problèmes épineux,
étant donné les différences de type de valeurs entre les deux
langages. L'extension Java de PHP utilise une métrique simple
mais efficace pour déterminer la meilleur fonction à utiliser.
De plus, les noms de méthodes ne sont pas sensibles à la casse en
PHP, ce qui augmente le nombre de conflits potentiels.
Une fois qu'une méthode est sélectionnée, les paramètres sont
transtypés, avec une perte d'information potentielle non négligeable
(par exemple, les nombres à virgules flottante en double précisions
seront convertis en booléen).
-
Traditionnellement en PHP, les tableaux et les tables de hashage peuvent
être interchangées, et fonctionnent de la même façon.
Notez que les tables de hashage de PHP ne peuvent être indexées
qu'avec des entiers ou des chaînes, et que le type primitif de
tableau de Java ne peut comporter de trous dans les index. Notez aussi
que les valeurs sont passées par
valeur, ce qui peut être coûteux en mémoire et en temps.
|