2

JavaScript では、オブジェクト リテラルをパラメーターとしてオブジェクトに渡すことができます。値が存在しない場合は、次のようにコーディングすることで既定値を参照できます。

this.title = params.title || false;

PHPでこれを行う同様の方法はありますか?

私はPHPが初めてで、答えが見つからないようです.javascriptのような簡単な解決策がない場合、それは私にとって純粋にクレイジーです!!

PHPで関数呼び出しで三項演算子を使用する最良の方法は?

isset($params['title']) ? $params['title'] : false;

ありがとう

4

5 に答える 5

3

PHP のブール演算子と配列アクセス メカニズムがあまりにも異なっているため、まったく同等のものを探してはいけません。あなたが望むのは、引数のデフォルト値を提供することです:

function foo(array $params) {
    $params += array('title' => false, ...);

    echo $params['title'];
}
于 2013-07-27T08:10:46.287 に答える
2

このようなもの$title = (isset($title) && $title !== '') ? $title : false;

于 2013-07-27T08:08:25.303 に答える
1

またはempty関数を使用して:

empty($params['title']) ? false : $params['title'];
于 2013-07-27T08:13:15.293 に答える
0
<?php
class MyObject {
    // Default value of object property
    public $_title = null;
    // Default value of argument (constructor)
    public function __construct($title = null){
        $this->_title = $title;
    }
    // Default value of argument (setter)
    public function setTitle($title = null){
        // Always validate arguments if you're serious about what you're doing
        if(!is_null($title) and !is_string($title)){
            trigger_error('$title should be a null or a string.', E_USER_WARNING);
            return false;
        }
        $this->_title = $title;
        return true;
    }
} // class MyObject;
?>

これは、デフォルト値でオブジェクトを実行する方法です。 1つの3つの方法。クラス定義でプロパティ値をデフォルトに設定します。__constructまたは、割り当てまたは特定のセッターでデフォルトに設定しsetTitleます。

しかし、それはすべてコードの残りの部分に依存します。JSを適切に使用するには、忘れる必要がありますPHP。これは、非常にルーズな型付けではありますが、わずかに厳密なプログラミング環境です。のような IDE コード補完サポートを提供しPHPない架空の関数クラス象ではなく、実際のクラスがにありJSます。

于 2013-07-27T09:07:04.637 に答える
0

$x = ($myvalue == 99) ? "x is 99": "x is not 99";

PHP ワンライナー if ... if ($myvalue == 99) {x is 99} else {x is not 99 //ここで値を false に設定}

于 2013-07-27T08:13:28.340 に答える