EP018. “为什么有些 PHP 函数要 echo,有些不用”
🔒 登录后可标记已读这一讲是插播的 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 速查
| 名称 | 类型 | 用途 |
|---|---|---|
echo | PHP 语法 | 把值直接输出到页面 |
return | PHP 语法 | 把值返回给调用它的地方,自己不会输出任何东西 |
判断 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