hmPeachの基礎中の基礎のAPI

概要

hmPeachは、PHP側から、「秀丸マクロの変数への値の設定・値の取得」の両方が出来るため、
「秀丸マクロ→hmPeachへと問い合わせる」、といった必要性は原則的にはありません
が、
「hmPy / hmRb / hmV8 / hmJS / hmPS / hmPerl / hmPython3 」との共通仕様の一環として、
そのような最低限の情報の送受信が出来る関数が揃っています。

基本となる5つの関数

以下の5つのAPIを知るだけで、秀丸マクロとPHPの値のやりとりは十分できます。

  • 命令の実行:
     └ DoFile(filepath)

    文字列「filepath」をPHPのファイルとして実行します。

  • 値の取得(整数):
     └ GetNumVar(sz_var_name)

    PHP内のグローバル変数「sz_var_name」を「整数」として取得します。

    元々が数値でなくとも、数値に変換可能なものであれば、整数として返ってきます。
    該当の変数が存在しなかったり、エラーが発生した場合は、0が返ってきます。
    対象の値が元々0の場合と区別がつかないですが、運用でカバーしてください。


  • 値の設定(整数):
     └ SetNumVar(sz_var_name, value)

    PHP内のグローバル変数「sz_var_name」に整数「value」を設定(代入)します。

    該当の変数が存在しなかったり、エラーが発生した場合は、0が返ってきます。
    代入に成功した場合は、1が返ってきます。


  • 値の取得(文字列):
     └ GetStrVar(sz_var_name)

    PHP内のグローバル変数「sz_var_name」を「文字列」として取得します。

    元々が文字列でなくとも、文字列に変換可能なものであれば(原則文字列に変換可能です)、文字列として返ってきます。
    該当の変数が存在しなかったり、エラーが発生した場合は、「""」が返ってきます。
    対象の文字列が元々「""」の場合と区別がつかないですが、運用でカバーしてください。


  • 値の設定(文字列):
     └ SetStrVar(sz_var_name, value)

    PHP内のグローバル変数「sz_var_name」に文字列「value」を設定(代入)します。

    該当の変数が存在しなかったり、エラーが発生した場合は、0が返ってきます。
    代入に成功した場合は、1が返ってきます。


mytest.mac
#PHP = loaddll( hidemarudir + @"\php\hmPeach.dll" );

#r1 = dllfuncw( #PHP, "SetStrVar", "my_oreore", "あいうえお" );
#r2 = dllfuncw( #PHP, "SetNumVar", "my_int", 100 );

#_ = dllfuncw( #PHP, "DoFile", currentmacrodirectory +@"\mytest.php" );
 
$hello = dllfuncstrw( #PHP, "GetStrVar", "my_hello");
#num = dllfuncw( #PHP, "GetNumVar", "my_num");

freedll(#PHP);

message($hello);
message(str(#num));
mytest.php
<?php
$GLOBALS["my_hello"] = "★★★" . $my_oreore;
$GLOBALS["my_num"] = 333 + $my_int;
?>