首页 > 解决方案 > 设置 PHP 变量并同时获取 WooCommerce 选项?

问题描述

我在 WordPress 中看到以下代码,但不明白正在发生什么操作:

$debug_mode = 'yes' === get_option( 'woocommerce_shipping_debug_mode', 'no' );

这看起来像是(1)设置变量和(2)检查它是否与 WordPress 中设置的选项相同的某种组合。任何人都可以拼出这种情况下的逻辑/运算符吗?

另外,为什么有人会使用这种措辞而不是仅仅获得选择权?

标签: phpwordpressvariableswoocommerce

解决方案


这就是所谓的三元

但是,由于代码风格(缺少括号),很难看到实际发生的情况。

$debug_mode = 'yes' === get_option( 'woocommerce_shipping_debug_mode', 'no' );

我的偏好是将条件包装在括号中,以使其更加明显:

$debug_mode = ( 'yes' === get_option( 'woocommerce_shipping_debug_mode', 'no' ) );

现在看起来更清楚它是什么 -对选项是否为变量的赋值(它将返回 a或.$debug_modewoocommerce_shipping_debug_mode===yesTRUEFALSE

这看起来像这样的“长手”是这样的:

$debug_mode = ( 'yes' === get_option( 'woocommerce_shipping_debug_mode', 'no' ) ) ? TRUE : FALSE;

但是,由于条件返回TRUEFALSE无论如何,该? TRUE : FALSE部分是多余的。

为了明确回答您的第二个问题,“为什么有人会使用这种措辞”-他们只是获得了选项值-他们这样写是因为它很简短。这是一个完美的例子,说明为什么我们应该为人类编写代码,而不仅仅是为机器编写代码 :)


推荐阅读