单引号显示器内部PHP函数为文本(PHP function inside single quotes

2019-09-19 08:47发布

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

基本上代替具有用于每个页面1个不同php文件的,我使用了一个开关函数来加载像的内容。 这是的各页的1一个例子。

switch($_GET['page'])  {

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

正如你可以看到它应该显示div标签并加载功能,但不是加载的功能,只是显示文本“displayUsers()”。 我明白为什么它是这样做的,但是我不知道如何去改变它,这样实际上是运行宁可显示它的功能。 任何帮助将非常感激。

问候

Answer 1:

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

switch($_GET['page'])  {

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

}

此串接displayUsers()中的字符串内的返回值,假设displayUsers()返回的代码。 我想你混淆了此功能 ,其中双引号内的字符串变量的分析。 这并不适用于功能的工作。

你也可以使用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引擎不跟踪的功能,在用户的会话。

如果您使用在多个脚本的功能,包括你的功能在某些“中心”的文件, 包括它无论你需要它。 我真的建议你阅读更多到PHP和include ; 我不打算解释PHP的基本知识; 你需要做一些功课多。



Answer 2:

您需要使用的。 (点)使用singleqotes时追加字符串:

$page = '<div class="innerbox">'.displayUsers().'</div>';


Answer 3:

尝试这个

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


Answer 4:

使用连接. 操作是这样的:

switch($_GET['page'])  {

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


文章来源: PHP function inside single quotes display is as text
标签: php function get