目次一覧
状態:-
閲覧数:710
投稿日:2019-03-11
更新日:2019-03-21
質問履歴18-1 / A.18-1
質問履歴18-2 / A.18-2 / 質問履歴18-3
質問しなかったQ
質問履歴18-2 / A.18-2 / 質問履歴18-3
質問しなかったQ
質問履歴18-1 / A.18-1
質問履歴18-1
Tell me why I can also access as an array as an object
・2019/3/7
Create a Stripe Product object.
\Stripe\Stripe::setApiKey("sk_test_××××××");
$product = \Stripe\Product::create([
'name' => 'My SaaS Platform',
'type' => 'service',
]);
Get the id of the Product object
echo $product->id;
· I can understand the above codeecho $product['id'];
· I can not understand the above code・What is the reason why the returned value should be an object but can be accessed in an array?
A.18-1
implements ArrayAccess
・「ArrayAccessインターフェースをimplementsしているオブジェクト」だから、配列形式でもアクセスできる
・Product extends ApiResource which extends StripeObject which implements ArrayAccess.
質問履歴18-2 / A.18-2 / 質問履歴18-3
質問履歴18-2
Is there a way to check whether the object (such as the return value from the API) is implements ArrayAccess?
・2019/3/11
・Is there a way to judge whether it is implements ArrayAccess by return value object without reading the document of API?
\Stripe\Stripe::setApiKey("sk_test_××××××");
$product = \Stripe\Product::create([
'name' => 'My SaaS Platform',
'type' => 'service',
]);
Access by object
echo $product->id;
Access by array
echo $product['id'];
A.18-2
2案
・is_subclass_of
・instanceof
\Stripe\Stripe::setApiKey("sk_test_××××");
$product = \Stripe\Product::create([
'name' => 'My SaaS Platform 2019年3月6日',
'type' => 'good',
]);
if (is_subclass_of($product, 'ArrayAccess')) {
echo "yes, \$product is a implements ArrayAccess\n";
} else {
echo "no, \$product is not implements ArrayAccess\n";
}
var_dump($product instanceof ArrayAccess);
質問履歴18-3
・「あるオブジェクト」が、「指定インターフェース」を「implementsしているかどうか」の条件判定について
質問しなかったQ
質問しなかったQ
「あるオブジェクト」が、「指定インターフェース」を「implementsしているかどうか」の条件判定について
・2019/3/12
「あるオブジェクト」が、「指定インターフェース」を「implementsしているかどうか」条件判定したい
・具体的には、ArrayAccess インターフェイスを「implementsしているかどうか」条件判定したい
Q
・どうやって条件判定するのですか?
・調べたら2つ見つかったのですが、違いは何ですか?
・subclass_of
・ReflectionClass::isSubclassOf
・具体的には、ArrayAccess インターフェイスを「implementsしているかどうか」条件判定したい
Q
・どうやって条件判定するのですか?
・調べたら2つ見つかったのですが、違いは何ですか?
・subclass_of
・ReflectionClass::isSubclassOf
Stripe Q17。カード情報を「card object」「source object」へ保存する違いについて
Stripe Q19。「PaymentIntents」と「Sourceオブジェクト」と「Sources API」の関係について