PHPの検出関数

10175 ワード

PHPの関数は牛の毛のように多くて、よく使う自然は覚えて、よく使わないのは本当に覚えられません...
ここでは、変数タイプ、データの存在、可用性に関する検出関数を示します.
 
gettype()/変数タイプの文字列記述を返します.jsのtypeofのように、変数タイプが複数回変更されているため、使用は推奨されません.
settype()/変数タイプの変更(変数の値だけでなく、タイプ変換とは異なる)
var_export(expression,true)/データを印刷する合法的なphpコード文字列(eval可能)、trueはコードを印刷しないように返します
var_dump(expression1,expression2,...)//印刷データとその種類
print_r(expression)/データを印刷し、配列やオブジェクトであればその構造を印刷します
 
Empty()/変数およびオブジェクト属性、配列要素、文字列切り取りの値のみを受け入れ、要するに定数および式は受け入れません
isset()/定数および式を受け入れない
define(constantName,value)/定数の定義
defined(constantName)/定数が定義されているかどうか
constant(constName)/定数の値を返します
 
is_null()
is_bool(var)
 
is_int(var)/これらの役割は同じで、別名だけです
is_integer()
is_long()
 
is_float(var)/これらの役割は同じで、別名だけです
is_double()
is_real()
 
is_numeric(var)
is_infinite(val)
is_finite(val)
is_nan(val)
is_string(var)
is_scalar(var)
is_array(var)
is_object(var)
is_resource(var)
is_a(object,class_name)//使用を推奨しない、object instanceof class_を使用するname
(object instanceof class_name)//継承関係の検出
is_subclass_of(object|sub_class_name, class_name)
 
is_soap_fault(object)
is_link(filename)
is_uploaded_file(filename)
is_file(filename)
is_dir(filename)
 
is_writable(filename)
is_writeable() // is_writeableの別名
is_readable(filename)
is_executable(filename)
 
is_callable(name)/クラスのメソッドの場合、異なるバージョンでstaticメソッドの判定が異なり、抽象関数は実行できませんがtrueも返します.変数と一般関数の数字に使用することをお勧めします.PHP 5が匿名関数をサポートした後、パラメータは匿名関数数(clousre)で、PHPのいくつかの関数のパラメータはcallbackタイプで、匿名関数または実行可能関数の文字列IDを入力する必要があります.is_callableは、このパラメータがcallbackであるかどうかを検証するために使用することができる.
 
func_get_arg(int arg_index)//パラメータ番号から関数が呼び出されたときのパラメータを取得する(デフォルト値は含まないが、パラメータが渡されていないデフォルトパラメータは、以下のいくつかの関数も含む)、PHP 5.3以降、これらの関数はファイルを含む形式で関数を導入するとエラーが発生します.
func_get_args();//関数のすべてのパラメータを取得し、配列を返します.パラメータの数がパラメータの数より多い場合があります.パラメータが無視されている場合、関数宣言時にデフォルト値がない限り、警告が表示されます.
func_num_args();//伝参個数、
 
file_exists(filename)
array_key_exists(key, search)
class_exists(class_name[,_autoload])/デフォルトで試行されます_Autoload()は、第2パラメータをfalseに設定してブロックできます
interface_exsists(interface_name[,_autoload])/2番目のパラメータをfalseブロック__に設定できますautoload()
method_exists(object|class_name,method_name)//公有、私有、保護方法を検出できphp 4.05以降、類似の関数パラメータはobjectでもclass_でもよいname
property_exists(object|class_name,property)/公有、私有、保護属性を検出できる
 
class_parents(object|class_name[,_autoload])/splコードライブラリ、2番目のパラメータビットfalseを設定してクラスの自動ロードを阻止
class_implements(object|class_name[,_autoload])/splコードライブラリは、それらのインタフェースを実装し、2番目のパラメータビットfalseを設定してクラスの自動ロードを阻止する
get_class([object])/php 5より、オブジェクトのメソッド内でパラメータを省略可能に実行すると、現在のオブジェクトのクラス名が取得されます
get_parent_class(object|class_name)
get_called_class()/オブジェクトのメソッド内で実行します.このメソッドが継承されている場合は、親ではなく子クラスクラス名を返します.
get_class_methods(object|class_name)//共有メソッドのみ取得
get_object_vars(object)/公有属性のみ取得でき、php 4.2指定された属性のみが返されます.
 
get_defined_constants()/宣言の定数
get_defined_vars()/宣言変数
get_declared_interfaces()/宣言インタフェース
get_declared_classes()/宣言されたクラス
get_defined_functions()/宣言された関数
get_loaded_extensions()/ロードされたプラグイン
get_extension_funcs(module_name)/プラグインで宣言された関数
 
get_required_files()
get_include_path()/phpを返します.iniで定義された道路力を含むini_get('include_path')
getcwd()/現在のファイルが存在するフォルダの道路力、一部のunixシステムでは、現在のディレクトリのいずれかの親ディレクトリの読み書き権限が必要です.
glob(pattern,[frag])/一致するすべてのファイルの情報を返すglob('*.txt')
dirname(path)/ファイルの力のフォルダ部分に戻る
 
getimagesize//ピクチャファイル情報を返す
get_resource_type(handle)/リソースタイプの文字列記述を返す
get_meta_tags(filename,[isurl])/htmlファイルheadラベル内のmetaを返し、name属性のあるmetaのみを返します
 
get_headers(url)/サーバから返されるhttp応答ヘッダを要求
getallheaders()/クライアントからのhttpリクエストヘッダを返し、apacheサーバのみに使用します.
apache_request_headers()/getallheadersの別名
get_browser()/ブラウザでサポートされている機能を検出し、browscapのみをチェックします.ini内で説明する機能はphp.ini内にbrowscapを配置する.Iniの道の力、注意して、ブラウザがある機能をサポートしていることを検出して、ある機能を使用することを許可することを意味しません.例えば、ユーザーはいくつかのウェブサイトがcookiesを使用することを禁止する設定を行ったかもしれません.
 
get_cfg_var(option)/php,iniで明示的に設定された構成項目の値を返す
ini_get(varname)/php構成項目を返す
ini_set(varname,newvalue)/スクリプトに一時的に構成項目を設定し、スクリプト実行後に構成項目の値が復元されます
ini_get_all()/すべての構成項目
ini_restore(varname)/スクリプトで一時的に変更された構成項目の値を復元
phpinfo()/php環境構成パラメータの印刷
php_ini_loaded_file()/phpを返します.iniファイルの絶対的な道路力
 
//特殊文字のエスケープ
get_magic_quotes_gpc()
get_magic_quotes_runtime()
get_html_translation_table([HTML_ENTIES|HTML_SPECIACHARS])/特殊文字がどのようにエスケープされるかを確認する
 
time()/システムタイムスタンプ
array getdate()
array gettimeofday()
 
date_default_timezone_get()
date_default_timezone_set(timezone_identifier)/timezone_identifierの値文字列
 
 
System()/windowsのsystem('dir')のようなシステムコマンドを実行します. system('msconfig')
 
 
//マジック定数
__LINE__ファイル内の現在の行番号.
__FILE__ファイルのフルパスとファイル名.含まれるファイルに使用すると、含まれるファイル名が返されます.
__DIR__ファイルが存在するディレクトリ.含まれるファイルに使用すると、含まれるファイルがあるディレクトリが返されます.これはdirname(_FILE_)に等しい.ルートディレクトリでない限り、ディレクトリの名前には末尾のスラッシュは含まれません.
__FUNCTION__関数の名前.PHP 5からこの定数は、この関数が定義されたときの名前(大文字と小文字を区別)を返します.PHP 4では、この値は常に小文字です.
__CLASS__クラス名(PHP 4.3.0新規).PHP 5からこの定数はクラスが定義されたときの名前(大文字と小文字を区別)を返します.PHP 4では、この値は常に小文字です.
__METHOD__クラスのメソッド名(PHP 5.0.0新規追加).メソッドが定義されたときの名前(大文字と小文字を区別)を返します.
__NAMESPACE__現在のネーミングスペースの名前(大文字と小文字が敏感).この定数はコンパイル時に定義されます.
 
$GLOBALS//すべてのグローバル変数の配列を保存
$_SERVERS//サーバ要求に関するパラメータ
 
 
クラスの反射のより高度な使い方については、専用の反射クラスRefractionを参照してください.このクラスはclass_nameまたはobjectは構造パラメータであり,伝達されたクラスの属性を考察するために専門的な反射クラスを構築する.
 
class Foo
{
    private function priFunc(){}
    protected function proFunc(){}
    public function pubFunc(){}
}
 
function get_class_all_methods($class){
    $r = new ReflectionClass($class);//   
    foreach($r->getMethods() as $key=>$methodObj){
        if($methodObj->isPrivate())
            $methods[$key]['type'] = 'private';
        elseif($methodObj->isProtected())
            $methods[$key]['type'] = 'protected';
        else
            $methods[$key]['type'] = 'public';
            $methods[$key]['name'] = $methodObj->name;
            $methods[$key]['class'] = $methodObj->class;
    }
    return $methods;
}
 
$methods = get_class_all_methods('Foo');
var_dump($methods);

 
実行結果:
array(3) {
  [0]=>
  array(3) {
    ["type"]=>
    string(7) "private"
    ["name"]=>
    string(7) "priFunc"
    ["class"]=>
    string(3) "Foo"
  }
  [1]=>
  array(3) {
    ["type"]=>
    string(9) "protected"
    ["name"]=>
    string(7) "proFunc"
    ["class"]=>
    string(3) "Foo"
  }
  [2]=>
  array(3) {
    ["type"]=>
    string(6) "public"
    ["name"]=>
    string(7) "pubFunc"
    ["class"]=>
    string(3) "Foo"
  }
}

 
 
転載先:https://www.cnblogs.com/ecalf/archive/2012/12/04/2802266.html