PHP 7.4 နှင့်အထက်တွင် FFI (နိုင်ငံခြား function interface) သည် C ဘာသာစကားနှင့်အပြန်အလှန်ဆက်သွယ်မှုကိုပေးရန်စွမ်းဆောင်ရည်မြင့်မားစေပြီး C ဖွဲ့စည်းတည်ဆောက်ပုံ, array type ၏ C တည်ဆောက်ပုံကိုရယူရန်နှင့်ကိုင်တွယ်ရန် FFI :: FFI :: Mansfulof ကို အသုံးပြုရမည်ကိုဤဆောင်းပါးသည်အာရုံစိုက်မည်။
FFI :: Typeof သည် Php FFI မှ PHP FFI မှရရှိသောနည်းလမ်းတစ်ခုဖြစ်သည်။ ၎င်းသည် string တစ်ခုဖြင့်ကိုယ်စားပြုသော C အမျိုးအစားကိုလက်ခံပြီး FFI \ c centpe အရာဝတ်ထုများကိုပြန်လည်ရရှိခဲ့သည်။ ဤအရာဝတ်ထုမှတစ်ဆင့်ပိုမိုရှုပ်ထွေးသောအမျိုးအစားစစ်ဆင်ရေးများပြုလုပ်နိုင်သည်။ ဥပမာအားဖြင့် arrays များဖန်တီးခြင်း,
Type definitions အဓိပ္ပာယ်ဖွင့်ဆိုချက်ကိုပြန်လည်အသုံးပြုရန်နှင့်ထပ်ခါတလဲလဲကြေညာချက်များကိုရှောင်ရှားရန်အဆင်ပြေသည်။
type ကိုးကားချက်များမှတဆင့်မျိုးစုံ variable တွေကိုသို့မဟုတ် array ကို dynamically ဖန်တီးနိုင်ပါတယ်။
ရှုပ်ထွေးသောအဆောက်အအုံများ, array စသည်တို့ကဲ့သို့ရှုပ်ထွေးသောအမျိုးအစားစစ်ဆင်ရေးများကိုထောက်ပံ့သည်။
ကျွန်ုပ်တို့တွင် array အသင်း 0 င်ပါ 0 င်သည်ဆိုပါစို့။
<?php
// အဓိပါ်ပယ် C ဘာသာစကားဖွဲ့စည်းပုံ
$ffi = FFI::cdef("
typedef struct {
int values[5];
int count;
} IntArrayStruct;
", "https://m66.net");
ဤနေရာတွင် Intarraystruct သည်ပုံသေအရွယ်အစား Integer Array တန်ဖိုးများပါ 0 င်သည် ။
<?php
$type = FFI::typeof("IntArrayStruct");
$ type သည်ယခုအခါ Antarraystruct ကိုရည်ညွှန်းသည်။
<?php
$instance = $type->new();
ဤနည်းအားဖြင့် ဒေါ်လာဥပမာ တစ်ခုသည်အသစ်ပြောင်းထားသော Intarraystruct Startance ဖြစ်သည်။
Array တန်ဖိုးများကို $ ဥပမာ -> တန်ဖိုးများ ဖြင့်တိုက်ရိုက်ဝင်ရောက်ကြည့်ရှုနိုင်ပြီး Subscript လုပ်ငန်းလည်ပတ်မှုကိုထောက်ပံ့သည်။
<?php
for ($i = 0; $i < 5; $i++) {
$instance->values[$i] = $i * 10;
}
$instance->count = 5;
<?php
for ($i = 0; $i < $instance->count; $i++) {
echo "values[$i] = " . $instance->values[$i] . "\n";
}
ထုတ်လုပ်မှု -
values[0] = 0
values[1] = 10
values[2] = 20
values[3] = 30
values[4] = 40
တခါတရံတွင်ကျွန်ုပ်တို့သည် array ကိုတိုက်ရိုက်ကိုင်တွယ်ရန်လိုအပ်သည်သို့မဟုတ် Array အမျိုးအစားကိုရည်ညွှန်းရန်လိုအပ်သည်။
<?php
// ရယူ int[5] ပုံနှိပ်စာ
$arrayType = FFI::typeof("int[5]");
// array variable ကိုဖန်တီးပါ
$arrayInstance = $arrayType->new();
for ($i = 0; $i < 5; $i++) {
$arrayInstance[$i] = $i + 1;
}
for ($i = 0; $i < 5; $i++) {
echo $arrayInstance[$i] . "\n";
}
FFI :: Typeof သည် C ဘာသာစကားအမျိုးအစားများရယူရန်အတွက်အဓိကမျက်နှာပြင်ဖြစ်သည်။
Type ကိုးကားချက်အရအဆောက်အအုံများနှင့် array ကဲ့သို့သောရှုပ်ထွေးသော data အမျိုးအစားများကိုသင်ဖန်တီးနိုင်သည်။
Array အဖွဲ့ဝင်များကိုဖွဲ့စည်းပုံတစ်ခုတွင်လည်ပတ်ရန်, Standard Array Access method ကိုသုံးပါ။
PHP FFI နှင့်ပေါင်းစပ်ပြီးနောက်ဒေတာဖွဲ့စည်းပုံကိုပြောင်းလွယ်ပြင်လွယ်နှင့်ထိရောက်စွာလုပ်ဆောင်နိုင်သည်။