2009-08-17 8 views
1

は、これらの行の目的は何ですか:PHP OOPラインの使用説明

<?php $title=($cfg && is_object($cfg))?$cfg->getTitle():'Apptitle :: My First App'; ?> 

<?=Format::htmlchars($title)?> 

誰かがここでの使用状況を説明できますか?

私は、トップラインがphpファイルの最初の行として使用されているのを見て、次に2行目がタイトルの入力に使用されているのを見ます。

なぜこの実装ですか?オブジェクト以外の目的は何ですか?

私は、目的をセッション全体で再利用することができると思います。わからない。

答えて

7

追加改行とコメント:

<?php 
$title = $cfg && is_object($cfg) // if $cfg isn't empty (false, 0, null) and it's an object 
     ? $cfg->getTitle() // then set $title to the return of getTitle() 
     : 'Apptitle :: My First App'; // otherwise use this as a default 
?> 

<?=Format::htmlchars($title)?> // this is a shortcut for echo. it probably escapes 
           // special characters: < becomes &lt; etc 
           // it doesn't change any values: it just echoes 

は、基本的にそれはtitleセットがありますかどうかを確認するために(つまり、何でも)あなたの$cfgオブジェクトをチェックしてやっているすべての - いない場合は、デフォルトを提供します。その後、htmlに対応した方法で画面に出力します。セッションやそのようなものとは関係ありません。

もう1つのクイックポイント:自分のコードでショートカット<?=を使用することは避けてください。携帯性が低いからです。つまり、テストサーバー上で動作する可能性がありますが、展開サイトまたはコードを使用したいと思う他の人が、そのサーバーを無効にしている可能性があります。それを避けることをお勧めします。

+0

素晴らしい答えをいただきありがとうございます。 1つの速いもの。 Formatはその行で何を意味しますか? – Codex73

0

これは一般的なテンプレートのようです。このテンプレートは、$ cfgオブジェクトを提供することでカスタマイズできます。 この短い例では、現在のページのタイトルを指定すると、次のようになります。それ以外の場合はデフォルト値が出力されます。

0

最初の行は、$cfgが有効な変数であるかどうか、およびそれがオブジェクトであるかどうかをチェックしています。 $cfgが有効なオブジェクトの場合、$ titleの値を$cfg->getTitle()の戻り値に設定します。それ以外の場合は、$ titleを'Apptitle :: My First App'に設定します。

2行目は、$title変数に渡されるFormat :: htmlcharsメソッドの戻り値を出力します。