Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.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_Wordpress - Fatal编程技术网

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']
实际上不能等于端口,即使您认为是这样。