Php 为什么这总是被认为是错误的?
我有一段代码是我写的Php 为什么这总是被认为是错误的?,php,wordpress,Php,Wordpress,我有一段代码是我写的 abstract class WorkTypes { const Portfolio = 0; const Study = 1; } function get_our_work ( $atts ) { // see https://codex.wordpress.org/Shortcode_API $work_type = (strcmp($atts['workType'],'ports') === 0) ? WorkTypes::Po
abstract class WorkTypes
{
const Portfolio = 0;
const Study = 1;
}
function get_our_work ( $atts )
{
// see https://codex.wordpress.org/Shortcode_API
$work_type = (strcmp($atts['workType'],'ports') === 0) ? WorkTypes::Portfolio : WorkTypes::Study;
include "page-content/our_work.php";
}
由于这个原因,
$work\u type
总是被评估为工作类型::研究
,即使我100%确信$atts['workType']
等于'ports'
。所以我知道(strcmp($atts['workType','ports')==0)
的计算结果总是false
。为什么?你在对一个数字进行布尔运算?我已经有一段时间没有使用php了,但我非常确定您必须具备以下功能:
$work\u type=(strcmp($atts['workType','ports')0)?工作类型::研究:工作类型::投资组合
也就是说,如果您的$atts['workType']与'ports'不匹配,则WorkTypes::Study,否则它会匹配,因此无论哪个比较字符串不同,都使用WorkTypes::Portfolio。您是在对数字进行布尔运算吗?我已经有一段时间没有使用php了,但我非常确定您必须具备以下功能: $work\u type=(strcmp($atts['workType','ports')0)?工作类型::研究:工作类型::投资组合
也就是说,如果您的$atts['workType']与'ports'不匹配,则WorkTypes::Study,否则它会匹配,因此无论哪个比较字符串不同,都使用WorkTypes::Portfolio。可能
$atts['workType']
有一个前导空格或尾随空格。你能var_dump($atts['workType'])代码>?您的评估是正确的。正如Dave Chen所指出的,您的$atts['workType']
实际上不能等于端口,即使您认为是这样。也许$atts['workType']
有一个前导或尾随空格。你能var_dump($atts['workType'])代码>?您的评估是正确的。正如Dave Chen所指出的,您的$atts['workType']
实际上不能等于端口,即使您认为是这样。