gpt4 book ai didi

php - drupal--为什么 $node->taxonomy 是一个数组

转载 作者:太空宇宙 更新时间:2023-11-03 11:17:13 26 4
gpt4 key购买 nike

有人写了这段代码。

 foreach ($node->taxonomy as $term) {
$tids[] = 't.tid = %d';
$args[] = $term->tid;
}

他怎么知道 foreach 中的 "$node->taxonomy"是一个数组?当我循环它时,foreach ($node->taxonomy as $term) {}我得到的输出将是 $term 的值。我不知道它是如何变成 't.tid = %d' 和 $term->tid 的。谢谢。

最佳答案

在 Drupal 相关代码中,一个 $node几乎总是由 node_load() 生成的对象功能。由于每个模块都有机会向该对象添加自己的属性,因此很难找到这些属性的中央文档。

根据经验和变量检查,经验丰富的 Drupal 开发人员知道当设置 $node->taxonomy 时始终是一组术语对象(由 taxonomy_get_term() 函数返回),由它们各自的 ID(名为 tids,用于术语 ID)索引。此数组由 taxonomy_nodeapi() 设置当 $op == 'load' 时起作用由 taxonomy_get_terms() 生产功能。

该问题提供的信息很少,但我们可以猜测该循环旨在构建两个数组,用于生成数据库查询,该查询在与 $node 匹配的 tid 列上进行过滤。目的。因为条款的数据已经存储在 $node->taxonomy 的项目中,我们希望这个查询不用于重新加载条款以显示他们的一些名称和/或描述。收集 't.tid = %d' 可能不是一个好主意,使用单个 "tid in (". <a href="http://api.drupal.org/api/drupal/includes--database.inc/function/db_placeholders/6" rel="noreferrer noopener nofollow"><code>db_placeholder($args)</code></a> .")" 构建查询会更好收集 $args 中的所有 tids 后的 WHERE 子句.

关于php - drupal--为什么 $node->taxonomy 是一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4242403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com