2017-02-23 9 views
1

Я изо всех сил, чтобы реализовать код PHP со следующей структурой:Вызов функции из другой функции в PHP

public function hookActionValidateOrder($params) 
{ 
    $invoice = new Address((int)$order->id_address_invoice); 
    $myStreet = $invoice->address1; 
    $myCity = $invoice->city; 
    $myPostcode = $invoice->postcode; 

    // ... SOME IRRELEVANT CODE HERE ... 

    $Tid = send($myStreet, $myCity, $myPostcode); /* Calling function send($a, $b, $c) */ 
} 

public function send($a, $b, $c) /* function send($a, $b, $c) */ 
{ 
    // ... CODE TO DO SOMETHING USING VARIABLES $a, $b, $c ... 
} 

Проблема заключается в том, этот код, кажется, это не распространяется на работу. Когда я помещаю его в проверку кода, он говорит: «Функция» send() 'не существует ». Скажите, пожалуйста, почему это так и как я это исправить?

+0

Вы используете какие-либо рамки? –

+0

Эти две функции инкапсулированы в класс? –

ответ

1

В использовании класса, чем вы можете использовать $this для вызова функции

class Test { 

    public function say($a) { 
     return $a ; 

    } 

    public function tell() { 
     $c = "Hello World" ; 
     $a = $this->say($c) ; 
     return $a ; 
    } 
} 

$b= new Test() ;  
echo $b->tell() ; 

если вы используете обычную функцию, чем закрытие использования

function tell(){ 
    $a = "Hello" ; 
    return function($b) use ($a){ 
     retrun $a." ".$b ; 
    } ; 
} 

$s = tell() ; 
echo $s("World") 

;

0

попробовать это:

class test 
{ 
public function hookActionValidateOrder($params) 
    { 
     $invoice = new Address((int)$order->id_address_invoice); 
     $myStreet = $invoice->address1; 
     $myCity = $invoice->city; 
     $myPostcode = $invoice->postcode; 

     // ... SOME IRRELEVANT CODE HERE ... 

     $Tid = send($myStreet, $myCity, $myPostcode); /* Calling function send($a, $b, $c) */ 
    } 
    } 
class test1 extends test 
{ 
    public function send($a, $b, $c) /* function send($a, $b, $c) */ 
    { 
     // ... CODE TO DO SOMETHING USING VARIABLES $a, $b, $c ... 
    } 
} 

Вы можете решить эту проблему с расширяет один класс к другому классу.

+0

Продолжение не продолжается –

+0

извините, моя ошибка .. только что обновлена. спасибо за ваше предложение :) – Gulshan

0

если вы пытаетесь использовать функцию или любой код из исходной страницы
в вторичной странице без его включения, то обычно это показать вам эту ошибку

(.... 'имя строки , имя функции, ....... и т.д. «) не существует


раствор для включают это первый в вашей второй странице и использования:

include("yourpage.php"); 

если не то
см "@Gulshan" Комментарий о "расширяет" классы. это вызывает ту же самую проблему

Смежные вопросы