我是php新手,所以请耐心等待。这是我的代码:
<?php
require('AuthnetCIM.class.php');
$cim = new AuthnetCIM('26JspTq3A', '6S97jCdwS56P3rGs',AuthnetCIM::USE_DEVELOPMENT_SERVER);
function add_profile()
{
// Create unique fake variables
$email_address = 'user' . time() . '@domain.com';
$description = 'Monthly Membership No. ' . md5(uniqid(rand(), true));
$customer_id = substr(md5(uniqid(rand(), true)), 16, 16);
// Create the profile
$cim->setParameter('email', $email_address);
$cim->setParameter('description', $description);
$cim->setParameter('merchantCustomerId', $customer_id);
$cim->createCustomerProfile();
// Get the profile ID returned from the request
if ($cim->isSuccessful())
{
$profile_id = $cim->getProfileID();
}
// Print the results of the request
echo '<strong>createCustomerProfileRequest Response Summary:</strong> ' .$cim->getResponseSummary() . '';
echo '<strong>Profile ID:</strong> ' . $profile_id . '';
}
add_profile()
?>
我的问题从这一行开始:$ cim-&gt; setParameter('email',$ email_address);
我收到错误:致命错误:在非对象上调用成员函数setParameter()
我知道这个代码在不在函数中时有效,这只是下一步。我确信我有一些简单的事情。任何帮助是极大的赞赏。谢谢。
答案 0 :(得分:2)
PHP有范围。您需要使用global
(不推荐)导入该函数或将其作为参数传递。 $cim
变量在函数中不会自动显示。
function add_profile($cim) {
// ...
}
add_profile($cim);
或(不推荐):
function add_profile() {
global $cim;
// ...
}
答案 1 :(得分:0)
在add_profile
函数中,您需要:
$cim
对象作为参数传递;或者,$cim
,使global $cim;
成为函数的全局函数。否则,现在,它超出了范围。