-10

私はかつて、このコードの何が問題なのかという質問をしました:

static $result = null;

if  (isNull($result))
{
    return $result;
}

大量の反対票(質問がなくなった)の後、問題は isNull 関数と呼ばれるものがないことです。私たちが持っているのはis_nullです

偉大な。そもそも isNull をどのように使用したのだろうか。

オートコンプリートが機能していることがわかりました。

これで、isNull と入力する理由がわかりました。関数は実際に存在します。ctrl クリックを押して、

/**
 * Returns a PHPUnit_Framework_Constraint_IsNull matcher object.
 *
 * @return PHPUnit_Framework_Constraint_IsNull
 * @since  Method available since Release 3.3.0
 */
function isNull()
{
    return PHPUnit_Framework_Assert::isNull();
}

/**
 * Returns a PHPUnit_Framework_Constraint_IsTrue matcher object.
 *
 * @return PHPUnit_Framework_Constraint_IsTrue
 * @since  Method available since Release 3.3.0
 */
function isTrue()
{
    return PHPUnit_Framework_Assert::isTrue();
}

これは functions.php というファイルからのものです。どんな問題があるのか​​わからない

<?php
/**
 * PHPUnit
 *
 * Copyright (c) 2002-2011, Sebastian Bergmann <sebastian@phpunit.de>.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   * Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   * Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in
 *     the documentation and/or other materials provided with the
 *     distribution.
 *
 *   * Neither the name of Sebastian Bergmann nor the names of his
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 *
 * @package    PHPUnit
 * @subpackage Framework
 * @author     Sebastian Bergmann <sebastian@phpunit.de>
 * @copyright  2002-2011 Sebastian Bergmann <sebastian@phpunit.de>
 * @license    http://www.opensource.org/licenses/bsd-license.php  BSD License
 * @link       http://www.phpunit.de/
 * @since      File available since Release 3.5.0

それは何ですか?そのファイルがどのように私の PHP に入ったのか、何か考えはありますか? 以前にそのファイルを持っていたことを覚えていません。

このフレームワークを追加したことはありません。私が知っているわけではありません。しかし、それはそこにあります。何らかの強力なフレームワークに違いありません。

オートコンプリートが自分のコードの一部であるとどのように認識しているかを知るにはどうすればよいですか? エクスプローラーで表示、ナビゲーターで表示、何も試しませんでした。Windows エクスプローラーに表示するオプションはありません。

PhPUnit は、知らず知らずのうちにコードに取り込まれた有名なフレームワークに違いありません。ZEND によって自動的にインストールされますか?

4

3 に答える 3

5

isNUll()「プロジェクト」(PHP フレームワーク) である PHPUnit の関数です。

あなたの質問は次のようです:

<?php
 if(myFooRandomFunction($a,$b,2,3.14))
 {
  //do something
 }
}

これはmyFooRandomFunction()何ですか?

意味がありません (php の関数について話しているため)。

でも

PHPUnit_Framework_Assert::isNull()

このアサーションに対して値をテストするためのフレームワークの機能です。明らかに、名前isNullはランダムではなく、php の標準から認識できるようにそのまま書かれています。

于 2013-03-19T13:23:32.697 に答える
2

PHP 単体テストは、PHP コードをテストし、区分化されたコードで特定の条件が満たされているかどうかを確認するために作成された PEAR ライブラリです。

isNull()組み込みの PHP 関数ではありません。

于 2013-03-19T13:24:37.090 に答える
1

PHPUnitはユニットテストフレームワークです。あなた(または誰か)がそれをあなたのコードに追加したとき、その関数は明らかにあなたのコードのどこでも利用できるようになりました。

これは、PHPだけでなく、プログラミングでもよくある状況です。これはすべての言語で発生します。他の人のコードやフレームワーク、アドインやプラグインを追加しても、完全な意味を理解できない場合があります。ここで、フレームワークに機能(isNull)が追加されました。これは、PHPUnitを削除することにした場合に機能しなくなります。したがって、アドインの使用にはリスクが伴う可能性があります。

于 2013-03-19T13:23:16.277 に答える