2017-07-14 9 views
2

これは基本的なことですが、わかりません。私はテンプレートファイルにPHP変数を持っています、それを$authorと呼んでください。それは私が使用しているコンテンツ管理システムによって引き継がれます。私はそれが文字列だと確信しています。それは私がPHPは文字列を比較できません

<?php print gettype($author); ?> 

をしようとしたとき、私は

<?php print $author; ?> 

を書くとき、私はそれが文字列だと思う理由は「ジョン

理由は、それは文字列 '
を印刷しているため、値があります'John'が印刷されます
ただし、書き込むとき

<?php $author == 'John' ? print 'yes' : print 'no'; ?> 

'いいえ'と表示されます。待って。何?
はまた、私は関数が-14を返し

<?php print strcmp($author, 'John'); ?> 

を使用するときに!
私の質問は、ここで何が起こっていると思いますか?そして、どうすればテストできますか?$author is equal to 'John'? コンテンツ管理システムはdrupalですが、一般的なphp質問の方が多いと思います。

+3

そして今 'のvar_dump($作成者は)' –

+1

うん、のvar_dumpはたぶん$著者は、いくつかの制御文字/空白が含まれてい –

+1

からエラーをダンプしますか? Try 'trim($ author)' –

答えて

1

強制的に文字列にします。

<?php 
$author = (string)$author; 
$author == 'John' ? print 'yes' : print 'no'; 
?> 
+0

私はそれを試してみましたが、inspect要素に気付かなかった余分な文字がありました(ちょっと遅かったと思います)。var_dumpはその違いを根絶しました。私はそれが誰かを助ける場合に質問を残しています。 –

+1

@Benjamin Thvedtすべての時間hehe :)。それは今すぐうまくいきます。 – Companjo

関連する問題