亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 5中的調用者函數?

PHP 5中的調用者函數?

PHP
梵蒂岡之花 2019-07-22 19:53:00
PHP 5中的調用者函數?是否有PHP函數來查找給定函數中調用方函數的名稱?
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

看見調試回溯-這可以將你的呼叫堆棧一路追蹤到頂部。

以下是如何讓你的來電者:

$trace = debug_backtrace();$caller = $trace[1];echo "Called by {$caller['function']}";if (isset($caller['class']))
    echo " in {$caller['class']}";


查看完整回答
反對 回復 2019-07-22
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

XDEBUG提供了一些不錯的功能。

<?php  Class MyClass
  {
    function __construct(){
        $this->callee();
    }
    function callee() {
        echo sprintf("callee() called @ %s: %s from %s::%s",
            xdebug_call_file(),
            xdebug_call_line(),
            xdebug_call_class(),
            xdebug_call_function()
        );
    }
  }
  $rollDebug = new MyClass();?>

將返回跟蹤

callee() called @ /var/www/xd.php: 16 from MyClass::__construct

要在ubuntu上安裝xdeb,最好的方法是

sudo aptitude install php5-xdebug

您可能需要先安裝php5-dev。

sudo aptitude install php5-dev

更多信息


查看完整回答
反對 回復 2019-07-22
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

這已經很晚了,但是我想分享一下函數,它將給出調用當前函數的名稱。

public function getCallingFunctionName($completeTrace=false)
    {
        $trace=debug_backtrace();
        if($completeTrace)
        {
            $str = '';
            foreach($trace as $caller)
            {
                $str .= " -- Called by {$caller['function']}";
                if (isset($caller['class']))
                    $str .= " From Class {$caller['class']}";
            }
        }
        else
        {
            $caller=$trace[2];
            $str = "Called by {$caller['function']}";
            if (isset($caller['class']))
                $str .= " From Class {$caller['class']}";
        }
        return $str;
    }

我希望這將是有用的。


查看完整回答
反對 回復 2019-07-22
  • 3 回答
  • 0 關注
  • 401 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號