gpt4 book ai didi

单引号内的 PHP 函数显示为文本

转载 作者:行者123 更新时间:2023-12-02 05:37:39 25 4
gpt4 key购买 nike

我有一个显示用户列表的函数,它是 displayUsers()

基本上,我没有为每个页面使用 1 个不同的 php 文件,而是使用了一个开关函数来加载类似的内容。这是其中 1 个页面的示例。

switch($_GET['page'])  {

case '#userlist' : $page = '
<div class="innerbox">
displayUsers();
</div> '; break;
}

如您所见,它应该显示 div 标记并加载函数,但是没有加载函数,只是显示文本“displayUsers()”。我明白为什么要这样做,但是我不确定如何更改它以便实际运行该功能而不是显示它。任何帮助将不胜感激。

问候

最佳答案

displayUsers()在引号内。它被解释为一个字符串。你要

switch($_GET['page'])  {

case '#userlist': $page = '<div class="innerbox">' . displayUsers() . '</div>'; break;

}

假设 displayUsers() 返回代码,这会在字符串内连接 displayUsers() 的返回值。我觉得你很困惑this feature解析双引号字符串中的变量。这不适用于函数。

你也可以使用 case '#userlist': $page = sprintf('<div class="innerbox">%s</div>', displayUsers(); break;

在此处阅读有关 sprintf 的信息:http://php.net/manual/en/function.sprintf.php


如果displayUsers()实际上输出代码本身,然后你可以使用

switch($_GET['page'])  {

case '#userlist': echo '<div class="innerbox">'; displayUsers(); echo '</div>'; break;

}

会发生的事情是打印开始标记,然后调用函数(打印代码),然后打印结束标记,顺序是这样。


如果你得到 function not defined()那么它就是它听起来的样子。当前脚本中没有定义该函数。

PHP 的工作原理每次请求页面时(有人转到“foo.php”),您的服务器和 PHP 引擎从某个目录获取文件 (foo.php),解析它,并且(通常)以表单的形式将一些东西发回给用户的 HTML 文档。每个页面都像一个“脚本”,有点像一个迷你应用程序,编译后执行一次,然后忘记

假设您的主页上有 displayUsers()定义。

//index.php

function displayUsers() {
//some code...
}

echo "Welcome to my website!", "<br />", 'Click <a href="foo.php">Here</a>.';

当有人访问您的主页时,displayUsers()已定义,耶!然而,它随后就被遗忘了 - PHP 引擎在加载和完成后丢弃了脚本,当然不知道是什么 displayUsers()是在你到达 foo.php 的时候.


那么你能做什么?如果您只在一页上使用该函数,请在该页上声明它。请记住,每个文件都被视为一个脚本。 PHP 引擎不会跟踪用户 session 期间的功能。

如果您在多个脚本中使用该函数,请将您的函数包含在某个“中央”文件和 include 中它在任何你需要的地方。我真的建议您阅读更多 PHP 和 include ;我不打算解释 PHP 的基础知识;你需要做更多的功课。

关于单引号内的 PHP 函数显示为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11437975/

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