2017-07-17 29 views
0

任何人都可以看到我所做的使用这个类的错误,它应该改变之前的单词,但它只是坐在那里什么都不做。 第二PHP PGM是我使用的实际班组长..如何让这个php类按预期工作

<?php 

include("parse.inc.php"); 

$bob = new parseClass(); 

$tag = "{Before}"; 
$replacement = "After"; 
$content = "My animal runs around all over the place and his name is {Before}."; 
$bob->ReplaceTag($tag, $replacement, $content); 
echo $bob; 

?> 




parse.inc.php (file name) 
*************************** 

<?php 
Class parseClass { 

    function ReplaceTag($tag, $replacement, $content) { 
     $content = str_replace($tag, $replacement, $content); 
     return $content; 
    } 

} 

// END Class parseClass 
?> 
+2

如果不是字符串,你可以不回对象。在你的情况'echo $ bob;'实际上是一个对象。您需要使用var_dump或print_r – chudasamachirag

+0

如果答案为您提供了所需的信息,请单击答案左侧的绿色复选标记以接受它。这将确保你的问题不会永远得不到解答,并且是向帮助你的人表示感谢。 –

回答

0

你只需要你的函数的结果存储在一个局部变量,并打印。

$result = $bob->ReplaceTag($x, $y, $z); 
print($result); 
+0

显然我有其他错误,因为没有上述的想法工作,但感谢您的建议。并没有得到错误文件中的任何错误。 –

+0

我得到这个错误,看起来像wordfence,但我把它关掉,但仍然存在,但不看起来像它导致这个问题,但在这里,如果有任何recrecognizes作为一个可能的问题,我在做什么。 [17-Jul-2017 06:07:06 UTC]无法打开/home/XXXXXXXXXXXXX/public_html/wp-content/wflogs/ips.php阅读和写作。 –

+0

我的基本连接有些问题是不对的......这些解决方案都不起作用。我甚至改变了这个功能,仍然没有工作 函数ReplaceTag($标签,$替换,​​$内容){ echo“$ tag
”; return $ content; } –

0

正如指出的那样,回声不会做太多,因为它们不是对象中的任何数据(无实例变量)。但该方法无论如何都会返回该值。所以......

$bob->ReplaceTag($tag, $replacement, $content); 
echo $bob; 

echo $bob->ReplaceTag($tag, $replacement, $content); 
1

在你的情况,你将内容传递到类的功能 因此,你应该返回值存储到变量第一

$result = $bob->ReplaceTag($tag, $replacement, $content); 

echo $result; 
0

我猜你想要打印被替换的字符串,所以你应该:

$result = $bob->ReplaceTag($tag, $replacement, $content); 
echo $result; 

为什么使用echo来打印类?如果你想这样做,请使用“var_dump”或“print_r”来代替;

0

如果硬性要求是要能够echoparseClass实例,试试这个:

class parseClass 
{ 
    private $content; 

    public function ReplaceTag($tag, $replacement, $content) 
    { 
     $this->content = str_replace($tag, $replacement, $content); 
    } 

    public function __toString() 
    { 
     return $this->content; 
    } 
} 

$bob = new parseClass(); 

$tag = "{Before}"; 
$replacement = "After"; 
$content = "My animal runs around all over the place and his name is {Before}."; 

$bob->ReplaceTag($tag, $replacement, $content); 

echo $bob; 

仅供参考,请参阅:

+0

哦谢谢localheinz ..我复制您的版本,看看它是否适用于我也许我可以看到我做错了(错字)或东西会让你很快知道的东西.. –

+0

确定很好,我看你告诉我使用字符串转换,但不知道如何实现它,所以非常感谢yu。像娃娃一样工作.. –

+0

@TomChambers如果它适合你,你能接受我的答案吗? – localheinz

0

只需更换这两条线

$bob->ReplaceTag($tag, $replacement, $content); 

echo $bob; 

$content = $bob->ReplaceTag($tag, $replacement, $content); 

echo $content;