Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
帮助调试php代码_Php_Debugging_Wordpress_Plugins - Fatal编程技术网

帮助调试php代码

帮助调试php代码,php,debugging,wordpress,plugins,Php,Debugging,Wordpress,Plugins,我正在入侵wordpress插件。因为我在一个发布tweet的插件中,所以我使用类似echo或print的东西。我已经确定了导致问题的一行,但不确定具体是什么,因为我无法打印或回显 $tagarray = wp_get_post_tags( $post_id); //returns an array $tags = "tag:"; if (count($tagarray) > 0){ foreach ( $tagarray as $tag ){ //$tags .=

我正在入侵wordpress插件。因为我在一个发布tweet的插件中,所以我使用类似echo或print的东西。我已经确定了导致问题的一行,但不确定具体是什么,因为我无法打印或回显

$tagarray = wp_get_post_tags( $post_id); //returns an array
$tags = "tag:";
if (count($tagarray) > 0){
    foreach ( $tagarray as $tag ){
        //$tags .= "mytag ";  // This line  works when quotes are removed.
        //$tags = strval($tag);  //This doesn't.
    }
}

我试过各种各样的$tag操作,比如施法等等,但都不管用。关于如何调试有什么想法吗?我最后的办法是将打印值发布到文件中。还有其他想法吗?

对于调试,使用var\u dump或print\r

对于调试,使用var\u dump或print\r

在循环中使用:

var_dump($tag);
die();
您应该能够准确地看到is$tag的类型和内容。循环将在第一个值之后立即停止

在您的循环中使用:

var_dump($tag);
die();

您应该能够准确地看到is$tag的类型和内容。循环将在第一个值之后立即停止

我发现(addon for/Firefox)对调试php非常有用,您可以在发送头之前将消息、数组、变量发送到firebug控制台。我发现(addon for/Firefox)对调试php非常有用,您可以发送消息、数组、,在发送标题之前,将变量发送到firebug控制台。

这不起作用,因为您错过了第二行中的concatation操作符(.)

$tagarray = wp_get_post_tags( $post_id); //returns an array
$tags = "tag:";
if (count($tagarray) > 0){
    foreach ( $tagarray as $tag ){
        //$tags .= "mytag ";  // This line  works when quotes are removed.
        $tags .= strval($tag);  //This will work Changed = to .=
    }
}
如果您希望调试代码,那么FireHP是一个很好的工具,您也可以使用任何带有内置调试的PHP IDE,如eclipse或其他


在wordpress中,您可以使用不起作用的

,因为您错过了第二行中的concatation运算符(.)

$tagarray = wp_get_post_tags( $post_id); //returns an array
$tags = "tag:";
if (count($tagarray) > 0){
    foreach ( $tagarray as $tag ){
        //$tags .= "mytag ";  // This line  works when quotes are removed.
        $tags .= strval($tag);  //This will work Changed = to .=
    }
}
如果您希望调试代码,那么FireHP是一个很好的工具,您也可以使用任何带有内置调试的PHP IDE,如eclipse或其他


在wordpress中,您可以使用

进行调试,因为它不会向浏览器输出任何类型的调试信息,请执行以下操作或类似操作:

$logger = fopen('debug.log','a');
fwrite($logger,"Begin Debug - " . time() . "\n------------\n");
$tagarray = wp_get_post_tags( $post_id); //returns an array
$tags = "tag:";
if (count($tagarray) > 0){
    foreach ( $tagarray as $tag ){
        //$tags .= "mytag ";  // This line  works when quotes are removed.
        //$tags = strval($tag);  //This doesn't.
        fwrite($logger,$tag . "\n");
    }
}
fwrite($logger,$tags . "\n");
fwrite($logger,print_r($tagarray) . "\n");
fwrite($logger,"----------\n End Debug \n\n");
fclose($logger);

要调试,因为它不会向浏览器输出任何类型的调试信息,请执行以下操作或类似操作:

$logger = fopen('debug.log','a');
fwrite($logger,"Begin Debug - " . time() . "\n------------\n");
$tagarray = wp_get_post_tags( $post_id); //returns an array
$tags = "tag:";
if (count($tagarray) > 0){
    foreach ( $tagarray as $tag ){
        //$tags .= "mytag ";  // This line  works when quotes are removed.
        //$tags = strval($tag);  //This doesn't.
        fwrite($logger,$tag . "\n");
    }
}
fwrite($logger,$tags . "\n");
fwrite($logger,print_r($tagarray) . "\n");
fwrite($logger,"----------\n End Debug \n\n");
fclose($logger);

您的代码不完整

是的,
wp\u get\u post\u tags()
返回标记列表,但该列表中的每个标记本身就是一个包含以下内容的对象:

  • 术语识别码
  • 名字
  • 鼻涕虫
  • 术语组
  • 术语\u分类\u id
  • 分类学
  • 描述
  • 母公司
  • 计数
因此,您需要这样做:

$tagarray = wp_get_post_tags( $post_id ); //returns an array
$tags = "tag:";
if (count($tagarray) > 0){
    foreach ( $tagarray as $tag ){
        $tags .= strval( $tag->name );
    }
}

您的代码不完整

是的,
wp\u get\u post\u tags()
返回标记列表,但该列表中的每个标记本身就是一个包含以下内容的对象:

  • 术语识别码
  • 名字
  • 鼻涕虫
  • 术语组
  • 术语\u分类\u id
  • 分类学
  • 描述
  • 母公司
  • 计数
因此,您需要这样做:

$tagarray = wp_get_post_tags( $post_id ); //returns an array
$tags = "tag:";
if (count($tagarray) > 0){
    foreach ( $tagarray as $tag ){
        $tags .= strval( $tag->name );
    }
}
对于调试php,我使用 您可以在代码中设置断点,无需任何修改, 因此,您不可能在代码中留下一些回音。

用于调试我使用的php 您可以在代码中设置断点,无需任何修改,
因此,您不可能在代码中留下一些回音。

这是一个在后端服务器端运行的插件。所以var_dump等不会在我的浏览器上发布。你仍然可以打印或其他,你只需要做不同的事情。打开一个文本文件并将结果输出到它。这是一个在后端服务器端运行的插件。所以var_dump等不会在我的浏览器上发布。你仍然可以打印或其他,你只需要做不同的事情。打开一个文本文件并将结果输出到其中。为了简化代码,我特意删除了“.”。没有乐趣(WP Debug版本是否与WP的最新版本配合使用。上次更新是在2007年。我故意删除了“.”以简化代码。没有乐趣。:(WP Debug版本是否与WP的最新版本配合使用。上次更新是在2007年。