WP DEVELOP

EP018. “为什么有些 PHP 函数要 echo,有些不用”

首页 WordPress 开发课程 PAGE TEMPLATE · EP018
约 5 分钟· #EP018#PAGE TEMPLATE
🔒 登录后可标记已读

这一讲是插播的 PHP 概念讲解,不接续任何主题文件的实际功能开发。目的是解释一个很常见的困惑:为什么像 the_title() 这种函数直接调用就会输出内容,而像 get_the_title() 这种函数调用了却什么都不显示,还要自己 echo 一次?答案是 echo(直接输出)和 return(返回值)的区别

涉及文件

📌 本讲没有新建或修改任何主题文件。示范代码是临时写在 index.php 里做教学演示用的,讲完当场就删除了,不会留在主题里,也没有对应的 -end 代码资料夹。下面代码块直接来自 transcript 口述内容,仅供理解概念,不代表主题的真实文件。

代码实现

临时写在 index.php(header 下方)里的演示代码,讲完即删除:

<?php
// 临时演示代码,仅用于讲解 echo / return 的区别,讲完会删除

// 例一:函数内部直接 echo,调用它就会自动输出
function double_me($x) {
  echo $x * 2;
}
double_me(25); // 页面上会看到 50

// 例二:函数用 return 返回结果,调用它本身不会输出任何东西
function double_me_v2($x) {
  return $x * 2;
}
double_me_v2(25); // 页面上什么都不会显示,值只是留在内存里

// 要让 return 的结果显示出来,得自己处理它,例如 echo 一下
echo double_me_v2(25); // 这样才会看到 50

// return 出来的值很灵活,可以存进变量
$magicNumber = double_me_v2(10); // $magicNumber 等于 20

// 也可以当成另一个函数的参数嵌套使用
function triple_me($x) {
  return $x * 3;
}
echo triple_me(double_me_v2(5)); // double_me_v2(5) 先算出 10,再乘 3,输出 30

Hook / Function 速查

名称类型用途
echoPHP 语法把值直接输出到页面
returnPHP 语法把值返回给调用它的地方,自己不会输出任何东西

判断 WordPress 函数要不要自己 echo 的经验法则:

函数名规律行为
the_xxx()函数内部已经帮你 echo 好了,直接调用就会输出,比如 the_title()the_ID()
get_the_xxx() / get_xxx()只会 return 结果,自己留着用(存变量、当 if 条件、或自己 echo),比如 get_the_title()get_the_ID()

常见坑

  • 不需要死记硬背每一个 WordPress 函数到底是 echo 还是 return。不确定的时候可以去 Codex 或 developer.wordpress.org 搜索,官方文档会写清楚这个函数是输出还是返回值。
  • 不要预先强行记忆所有函数用法,跟着课程反复练习,自然会熟悉常用的那一批。

延伸 / 后续讲座会用到

本讲的 the_ / get_the_ 命名经验法则会贯穿后面整门课,遇到新函数时可以先用这个规律猜一下它的行为。

Sources

Udemy:

  • Become a WordPress Developer: Unlocking Power With Code — Section 5, EP018