快速业务通道

在WebSphere sMash中集成Java和PHP - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
Web 浏览器输出

在WebSphere sMash中集成Java和PHP - 编程入门网

PHP 脚本:

● 创建 Java HashMap 类的实例。

● 将包含 Java Bridge! 的字符串存储在映射中。

● 突出 Java 和 PHP 类型之间的互操作性。

● 创建 PHP 数组,并将其存储在 Java 映射中,如下面的代码所示。

  $array = array(1, 2, 3, 4, 5); $map->put("stuff", $array);

对映射进行 put 调用时,PHP 数组会转换为最接近的 Java 类型,即 Java Map.与此类似,当 get 调用从 $map 读回值时,会将其转换回常规 PHP 数组。这可以在不进行任何复制的情况下进行,因为 PHP 数组具有两个个性类型,即 PHP 数组和 Java 映射。

遍历 Java 集合

尝试使用以下代码替换 MoreJava.php 脚本:

  <?php $list = new Java("java.util.ArrayList"); var_dump($list); $date = new Java("java.util.Date", 70, 9, 4); echo "<br/>"; $list->add("Java Bridge!"); $list->add($date); $list->add(array(1, 2, 3, 4, 5)); $iterator = $list->iterator(); while ($iterator->hasNext() == TRUE) {    var_dump($iterator->next()); echo "<br/>"; } ?>

在WebSphere sMash中集成Java和PHP(4)

时间:2011-07-06 IBM Anthony Phillips,Zoe

现在可以打开浏览器,指向 http://localhost:8080/MoreJava.php,您将看到以下输出,如图 4 中所示。

图 4. 遍历 Java 集合的 Web 浏览器输出

在WebSphere sMash中集成Java和PHP - 编程入门网

此示例显示了使用 Java ArrayList 类的 PHP.而且,还从 ArrayList 获得了迭代器,并从头到尾对集合进行了扫描。迭代器的内容按顺序写入,首先是字符串 Java Bridge!,然后是 Java Date 对象,最后是包含五个数字的 PHP 数组。

访问静态方法和字段

静态方法和字段使用 JavaClass 进行访问。对 Java 有一点差异,其中静态方法和字段直接使用类名称进行直接访问。以下代码说明了如何对 java.lang.System 调用 currentTimeMillis:

  <?php $system = new JavaClass("java.lang.System"); var_dump($system); echo("</br>Current time: ". $system->currentTimeMillis()."</br>"); ?>

图 5 显示了在浏览器中运行此脚本的输出。

图 5. 访问静态方法的 Web 浏览器输出

在WebSphere sMash中集成Java和PHP - 编程入门网

访问静态字段与此类似。下面的代码显示 java.lang.Integer 类中的 MIN_VALUE 静态字段:

  <?php $integerClass = new JavaClass("java.lang.Integer"); var_dump($integerClass->MIN_VALUE); ?>

图 6 显示了在浏览器中运行此脚本的输出。

图 6. 访问静态字段的 Web 浏览器输出

在WebSphere sMash中集成Java和PHP - 编程入门网

在WebSphere sMash中集成Java和PHP(5)

时间:2011-07-06 IBM Anthony Phillips,Zoe

在 PHP 中捕获 Java 异常

Java Bridge 将 Java 异常转换为 JavaException 的实例。这是在 PHP 脚本中捕获的通用 PHP 异常。以下代码片段显示了对 java.lang.System 上的 getProperty 的无效调用:

  <?php try { $system = new JavaClass("java.lang.System");    $system->getProperty(FALSE); } catch (JavaException $exception) {    echo "Cause: ".$exception->getCause(); } ?>

图 7 显示了在浏览器中运行此脚本的输出。

图 7. 捕获 Java 异常的 Web 浏览器输出

在WebSphere sMash中集成Java和PHP - 编程入门网

请注意,在 WebSphere sMash 1.0 中,getCause 方法将返回基础 Java 异常的类名称,而不是 所导致的异常本身。在最新的 Project Zero 构建版本中,这个奇怪的行为已经得到修复,将返回实际的 Java 异常。

从 Java 到 PHP 的类型转换

表 1 显示了 Java 类型如何转换为 PHP 类型。常规的

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号