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

   使用 Java 集合类

Java 提供了丰富的集合类,包括映射、集、列表和队列。此示例代码显示了 PHP 脚本可以如何利用这些类。正如前面所述,创建一个新 PHP 脚本(例如,MoreJava.php)并添加以下代码:

<?php
    $map = new Java("java.util.HashMap");
   
    $map->put("title", "Java Bridge!");
    $array = array(1, 2, 3, 4, 5);
    $map->put("stuff", $array);
    var_dump($map->get("stuff"));
    echo $map->get("title");
?>

 

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

    图 3. 使用 Java 集合类的 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/>";
}
?>

 

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

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

在WebSphere sMash中集成Java和PHP

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzywsw.html