任何人都可以解决我的问题。它在drupal 7视图中,我不知道为什么if条件没有得到满足(if($ mycount == 1))在下面的代码中。
foreach ($fields as $id => $field){
if($field->class == "counter")
{
$mycount = $field->content;
echo $mycount;
echo "<br>";
}
if($field->class == "field-logo")
{
var_dump($mycount); // output
echo "<br>";
if($mycount == 1) // but here 1 == 1 for the first time. see the output.
{
echo "worked"; // its not coming here...
}
}
}
输出:
1
string(36) "1"
2
string(36) "2"
3
string(36) "3"
4
string(36) "4"
5
string(36) "5"
感谢。
答案 0 :(得分:0)
我怀疑问题是转换字符串大小 - 字符串(36) - 这表明$mycount
内容不是一个字符而是36(数字“1”和35个垃圾字符) 。你应该试试这个:
$mycount = trim($field->content);
echo '<pre>as string: ' . var_export($mycount, true)
. ', is_numeric: ' . var_export(is_numeric($mycount), true)
. ', as integer: ' . var_export((int) $mycount, true) . '</pre><br />';
您应该在输出中看到类似的内容:
as string: '1', is_numeric: true, as integer: 1
答案 1 :(得分:0)
我认为Views会将您的字段值包含在某些HTML中,因此您的实际输出可能是<span class="field-content">1</span>
,但在浏览器中,您只能看到&#34; 1&#34;。
为了避免将结果包装在HTML中,您需要更改&#34;查看结果计数器&#34;字段样式设置为&#34;自定义字段HTML&#34;并设置&#34; - 无 - &#34;作为下拉值。
现在$field->content
将返回没有任何HTML的值,并且if语句中的$mycount == 1
将正常运行。