使用PHP 5.3.3和Drupal 7.17我创建了一个简短的自定义PHP脚本,其中我想调用Drupal的函数 - 这反过来期望一个对象具有一个pass属性:
function user_check_password($password, $account) {
if (substr($account->pass, 0, 2) == 'U$') {
$stored_hash = substr($account->pass, 1);
$password = md5($password);
}
.....
}
Run Code Online (Sandbox Code Playgroud)
所以在我的脚本中,我尝试"动态"创建这样一个对象:
<?php
require_once('/path/to/drupal/includes/password.inc');
........
$sth = $db->prepare(SQL);
$sth->execute(array($username));
if ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
if (user_check_password($password, array('pass' => $row['pass']))) {
header('Content-Type: application/json; charset=utf-8');
print json_encode($row);
}
}
Run Code Online (Sandbox Code Playgroud)
但是这给了我一个错误: Trying to get property of non-object
这可能意味着:PHP不接受我的数组,它想要一个对象.
我如何"动态"创建一个匿名对象然后让它开心?
你收到一个错误,因为Array不是Object.如果您不想手动创建对象(如@adityamenon的答案),那么您可以简单地将数组转换为对象:
user_check_password($password, (object)array('pass' => $row['pass']))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
315 次 |
| 最近记录: |