Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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 在自定义wordpress小部件中使用foreach转义并为输入赋值_Php_Wordpress - Fatal编程技术网

Php 在自定义wordpress小部件中使用foreach转义并为输入赋值

Php 在自定义wordpress小部件中使用foreach转义并为输入赋值,php,wordpress,Php,Wordpress,我有这段代码,它是从我为自定义wordpress主题开发的自定义小部件中提取的。 我对代码有一个问题,这是因为我想通过使用wordpress中内置的esc\uz函数使用foreach循环来转义这些值。 我面临的问题是,如果我尝试使用$instance[$key]检查是否设置了值,如果var\u dump我将看到数组中各个键的值,而不是键本身,因此我无法将键分配给$instance变量。 我还想使用$key来设置相对变量,如我的代码中后面使用的$title和$claime。 我怎样才能解决这个问题

我有这段代码,它是从我为自定义wordpress主题开发的自定义小部件中提取的。 我对代码有一个问题,这是因为我想通过使用wordpress中内置的
esc\uz
函数使用foreach循环来转义这些值。 我面临的问题是,如果我尝试使用
$instance[$key]
检查是否设置了值,如果
var\u dump
我将看到数组中各个键的值,而不是键本身,因此我无法将键分配给$instance变量。 我还想使用$key来设置相对变量,如我的代码中后面使用的
$title
$claime
。 我怎样才能解决这个问题

更清楚地说,我期望的是:

$instance = array( 'title' => 'lorem', 'claime' => 'ipsum' );

foreach( $instance as $key => $val ){
  // here the key I need is title so $instance[$key] needs to be $instance['title'] and $key become the $title variable.
  $key = isset( $instance[$key] )? esc_attr( $instance[$key] ) : ''; 
}

我的实际代码是:


foreach( $instance as $key => $val ){
      if( $key === 'text' ){
        $text = isset( $instance['text'] )? wp_kses( $instance['text'], $this->allowed ) : '';
      }
      #$key = isset( $instance[$key] ) ? esc_attr( $instance[$key] ) : '';
    }


如果要从数组键创建新变量,可以使用php的提取函数:



但不要在包含用户输入的数组上使用此选项。

我可能在这里遗漏了一些内容。。。但是为什么要检查$instance['text']是否已设置?如果未设置,则$key==='text'将永远不会为真!?
<?php
$var_array = array("color" => "blue", "size"  => "medium");

extract( $var_array );

echo $color, $size; // blue medium 
?>