Php 函数内部的str_replace()

Php 函数内部的str_replace(),php,Php,这可能很容易,但我被卡住了。由于某些原因,我无法使其工作,使用带有str_replace的函数来更改/编辑一个似乎无法工作的变量 index.php <?php include("test.php"); ?> <html><head></head><body> <? $a = cons(array("one","two","three"),array("four","five","six")); ?> </

这可能很容易,但我被卡住了。由于某些原因,我无法使其工作,使用带有str_replace的函数来更改/编辑一个似乎无法工作的变量

index.php

<?php
    include("test.php");
?>
<html><head></head><body>

<? $a = cons(array("one","two","three"),array("four","five","six")); ?>

</body></html>
$header = '<form class="Poll" method="post" action="%src%"><input type="hidden" name="QID" value="%qid%" /><h4>%question%</h4><table width="100%">';
$md5 = '';
$question = array();
$answers = array();
$tips = array();

function cons($params, $tips) {
        $question = array_shift($params);
        $answers = $params;
        $tooltip = $tips;
        $md5 = md5($question);  
        $header = str_replace('%src%', $_SERVER['SCRIPT_NAME'], $header);
        $header = str_replace('%qid%', $md5, $header);
        $header = str_replace('%question%', $question, $header);

        //isset($_COOKIE[$md5]) ? poll($VOTES) : poll($POLL);  


        /* using this to test */
        if(isset($_COOKIE[$md5])){
            echo "Hello";
        }else{
            echo $header;
            //echo $center;
            //echo $footer;
        }
    echo $md5;
    }

这不是我要找的。我希望代码保持紧凑,而不是重复和重复的代码。因此,如果有人有任何想法或建议,我将不胜感激

你写的东西看起来应该有用,但我还没有试过运行它。每次
str\u replace
后检查结果,查看您看到的值

或者,完全跳过替换,只在适当的位置构造字符串:

$header = '<form class="Poll" method="post" action="' . $_SERVER['SCRIPT_NAME'] . '"><input type="hidden" name="QID" value="' . $md5 . '" /><h4>' . $question . '</h4><table width="100%">';
$header=''$问题",;

您编写的内容看起来应该可以运行,但我还没有尝试运行它。每次
str\u replace
后检查结果,查看您看到的值

或者,完全跳过替换,只在适当的位置构造字符串:

$header = '<form class="Poll" method="post" action="' . $_SERVER['SCRIPT_NAME'] . '"><input type="hidden" name="QID" value="' . $md5 . '" /><h4>' . $question . '</h4><table width="100%">';
$header=''$问题",;

cons()
中不可用。尝试将其传递到
cons()
或声明为全局。

cons()
中不可用。尝试将其传递到
cons()
或声明为全局。

$header
无法从
cons()
中访问,这同样适用于test.php开始时的所有空数组 您需要将它们作为参数传递,或者添加

global $header, $md5, $question, $answers, $tip;

函数顶部的
cons()
允许它从其作用域之外访问变量

$header
不能从
cons()
内部访问,这同样适用于test.php开始时的所有空数组 您需要将它们作为参数传递,或者添加

global $header, $md5, $question, $answers, $tip;

到函数的顶部
cons()
以允许它从其作用域之外访问变量

,或者可能您没有首先将
$header
变量传递给您的函数,并且没有启用
错误报告
,即使某些操作不起作用。
$header
cons()中不可用
。尝试将其传递到
cons()
或声明为全局。@如果您将此作为答案发布,我将接受它。我甚至没有想过将$header声明为全局。这解决了我的问题。谢谢,阿洛蒂把它作为一个答案。我很高兴我能提供帮助,或者可能您没有首先将
$header
变量传递给函数,并且没有启用
错误报告
,即使某些东西不起作用。
$header
cons()
中不可用。尝试将其传递到
cons()
或声明为全局。@如果您将此作为答案发布,我将接受它。我甚至没有想过将$header声明为全局。这解决了我的问题。谢谢,阿洛蒂把它作为一个答案。我很高兴我能帮上忙。我每次都尝试回显,但仍然不起作用,我有一种感觉,我可能必须在函数中构建它。啊,我原以为它是回显的空变量,但忘了注释ini_集(“显示错误”,0)但在你和reeno的帮助下,我解决了这个难题。我每次都尝试回显,但仍然不起作用,我有种感觉,我可能必须在函数中构建它。啊,我以为它回显了,并且是空变量,但忘了注释ini_集('display_errors',0)但在你和reeno的帮助下,我解决了这个问题。