PHP
downloads | documentation | faq | getting help | mailing lists | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Funções para Java> <Java Servlet SAPI
Last updated: Fri, 28 Nov 2008

view this page in

Exemplos

Exemplo #1 Exemplo da Java

<?php
// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');

// demonstrate property access
echo 'Java version=' $system->getProperty('java.version') . '<br />';
echo 
'Java vendor=' $system->getProperty('java.vendor') . '<br />';
echo 
'OS=' $system->getProperty('os.name') . ' ' .
             
$system->getProperty('os.version') . ' on ' .
             
$system->getProperty('os.arch') . ' <br />';

// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
                      
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo 
$formatter->format(new Java('java.util.Date'));
?>

Exemplo #2 Exemplo da AWT

<?php
// Este exemplo é pretendindo para ser executado em CLI.

$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();
?>
Notas:

  • new Java() criará uma instância de uma classe se um construtor apropriado estiver disponível. Se nenhum parâmetros for passado e o construtor padrão for utilizável já que prove acesso à classes como java.lang.System que expõe a maior parte de suas funcionalidades através de métodos estáticos.
  • Acessar um membro de uma instância primeiro procurará por uma propriedade bean, depois por campos públicos. Em outras palavras, print $date.time elel primeiro tentará trabalhar com $date.getTime(), depois com $date.time.
  • Tanto membros estáticos como de instância podem ser acessados em um objeto com a mesma sintaxe. Além disso, se o objeto java é do tipo java.lang.Class, membros estáticos da classe (campos e métodos) podem ser acessados.
  • Exceções disparadas resultam em avisos do PHP e em resultados NULL. Os avisos podem ser eliminados prefixando uma chamada de método com um sinal "@". As seguintes APIs podem ser usadas para obter e reniciar o último erro:

  • Resolução de sobrecarga em geral é um problema complicado dada às diferenças nos tipos entre as duas linguagens. A extensão Java aplica uma métrica simples, mas relativamente eficaz, para determinar qual sobrecarga é a melhor. Além disso, nomes de métodos no PHP não são sensíveis ao caso, potencialmente aumentando o número de sobrecargas a serem escolhidas. Uma vez que um método é escolhido, os parâmetros são alterados se necessário, possivelmente com perda de dados (exemplo: números de ponto flutuante de precisão dupla serão convertidos para booleano).
  • Na tradição do PHP, arrays e hashtables podem ser usados de forma alternada. Perceba que hashtables no PHP só podem ser indexadas por inteiros e strings; e que arrays de tipos primitivos em Java não podem ser esparsos. Também note que essas estruturas são passadas por valor, então pode ter custo em termos de memória e tempo.



add a note add a note User Contributed Notes
Exemplos
There are no user contributed notes for this page.

Funções para Java> <Java Servlet SAPI
Last updated: Fri, 28 Nov 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites