0

我有以下函数文件http://pastebin.ca/2475191

我正在尝试设置一个 if 条件来查看是否选中了复选框。可以找到复选框的字段是这个

$this->settings['slider'] = array(
    'section' => 'general',
    'title'   => __( 'Enable/Disable Slider' ),
    'desc'    => __( 'Please check the checkbox ' ),
    'type'    => 'checkbox',
    'std'     => 1 // Set to 1 to be checked 
);

在我的后端,我可以看到value="1"它没有改变,它只是checkbox="checked"在我检查它时被添加。

首先,我尝试查看该值是否在 index.php 中得到回显

<?php 
 $settings = get_option('mytheme_options');
 $slider = $settings['slider']; // for echoing the value
 var_dump($slider);
 echo $slider;
?>

当复选框在后端被选中时,我得到回显string(1) "1" 1,当它没有被选中时,我得到Notice: Undefined index: slider一个新行NULL

当我尝试添加这样的条件时

<?php 
  $settings = get_option('mytheme_options');
  $slider = $settings['slider'];
  if ($slider = 1) { ?>
    <div.....HTML
  <?php } else {echo "slider disabled";} ?>

当没有检查复选框时,我会得到,并且在检查复选框时Notice: Undefined index: slider仍然可见AND,我没有错误,并且滑块仍然可见。

请帮助我,我是 wordpress 的菜鸟,尽可能多地学习和修复错误。

4

1 回答 1

2
if (isset( $settings['slider'])) { ?>
    <div.....HTML
  <?php } else {echo "slider disabled";} ?>

检查两个值之间使用

==(比较运算符)或 ===(恒等运算符)= 是赋值运算符

这意味着分配 value 。

$slider = 1 // it will assign 1 as an integer value to $slider

/*****************************/

$slider =1;
$slider == 1 // check if $slider value is one both 1 (integer) and "1" a string will return true

/*****************************/


$slider =1;
$slider === "1" //  check if $slider value is 1 and its type is string.  here it will return false as value is of $slider is one but type is int not string
于 2013-11-10T14:37:54.207 回答