Hướng dẫn php call function from another class - hàm gọi php từ một lớp khác

40

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi vẫn đang học OOP vì vậy điều này thậm chí có thể không thể thực hiện được [mặc dù tôi sẽ ngạc nhiên nếu vậy], tôi cần một số trợ giúp gọi phương thức lớp khác.

Ví dụ: trong ClassA I có phương pháp này:

function getName[]
{
    return $this->name;
}

Bây giờ từ

//file1.php


//file2.php

0 [tệp khác nhau, nhưng trong cùng một thư mục], tôi muốn gọi ________ 11
//file1.php


//file2.php

2, làm thế nào để tôi làm điều đó? Tôi đã cố gắng chỉ làm một
//file1.php


//file2.php

3 nhưng điều đó không hoạt động.

Thanks!

Sẽ

23.2K13 Huy hiệu vàng93 Huy hiệu bạc105 Huy hiệu đồng13 gold badges93 silver badges105 bronze badges

Đã hỏi ngày 21 tháng 11 năm 2012 lúc 23:29Nov 21, 2012 at 23:29

4

//file1.php


//file2.php

Đã trả lời ngày 21 tháng 11 năm 2012 lúc 23:33Nov 21, 2012 at 23:33

CodingBizCodingBizcodingbiz

25.8k8 Huy hiệu vàng55 Huy hiệu bạc93 Huy hiệu Đồng8 gold badges55 silver badges93 bronze badges

8

Nếu chúng là các lớp riêng biệt, bạn có thể làm một cái gì đó như sau:

class A
{
    private $name;

    public function __construct[]
    {
        $this->name = 'Some Name';
    }

    public function getName[]
    {
        return $this->name;
    }
}

class B
{
    private $a;

    public function __construct[A $a]
    {
        $this->a = $a;
    }

    function getNameOfA[]
    {
        return $this->a->getName[];
    }
}

$a = new A[];
$b = new B[$a];

$b->getNameOfA[];

Những gì tôi đã làm trong ví dụ này trước tiên là tạo một thể hiện mới của lớp

//file1.php


//file2.php

4. Và sau đó tôi đã tạo ra một thể hiện mới của lớp
//file1.php


//file2.php

5 mà tôi chuyển thể hiện
//file1.php


//file2.php

4 vào hàm tạo. Bây giờ
//file1.php


//file2.php

5 có thể truy cập tất cả các thành viên công cộng của lớp
//file1.php


//file2.php

4 bằng cách sử dụng
//file1.php


//file2.php

9.

Cũng lưu ý rằng tôi không khởi tạo lớp

//file1.php


//file2.php

4 bên trong lớp
//file1.php


//file2.php

5 vì điều đó có nghĩa là tôi đã cặp đôi hai lớp. Điều này làm cho nó khó:

  1. Đơn vị kiểm tra lớp
    //file1.php
    
    
    //file2.php
    
    
    5 của bạn
  2. Trao đổi lớp
    //file1.php
    
    
    //file2.php
    
    
    4 cho một lớp khác

Đã trả lời ngày 21 tháng 11 năm 2012 lúc 23:36Nov 21, 2012 at 23:36

PeehaapeehaaPeeHaa

70.1K58 Huy hiệu vàng185 Huy hiệu bạc259 Huy hiệu đồng58 gold badges185 silver badges259 bronze badges

3

Bạn sẽ cần phải có một thể hiện của Classa trong ClassB hoặc có lớp kế thừa Classa

class ClassA {
    public function getName[] {
      echo $this->name;
    }
}

class ClassB extends ClassA {
    public function getName[] {
      parent::getName[];
    }
}

Không có kế thừa hoặc phương thức thể hiện, bạn cần classa để có một phương thức tĩnh

class ClassA {
  public static function getName[] {
    echo "Rawkode";
  }
}

--- Tệp khác ---

class A
{
    private $name;

    public function __construct[]
    {
        $this->name = 'Some Name';
    }

    public function getName[]
    {
        return $this->name;
    }
}

class B
{
    private $a;

    public function __construct[A $a]
    {
        $this->a = $a;
    }

    function getNameOfA[]
    {
        return $this->a->getName[];
    }
}

$a = new A[];
$b = new B[$a];

$b->getNameOfA[];
4

Nếu bạn chỉ muốn gọi phương thức từ một thể hiện của lớp:

class ClassA {
  public function getName[] {
    echo "Rawkode";
  }
}

--- Tệp khác ---

$a = new ClassA[];
echo $a->getName[];

Nếu bạn chỉ muốn gọi phương thức từ một thể hiện của lớp:

Đã trả lời ngày 21 tháng 11 năm 2012 lúc 23:33Nov 21, 2012 at 23:33

CodingBizCodingBizRawkode

25.8k8 Huy hiệu vàng55 Huy hiệu bạc93 Huy hiệu Đồng5 gold badges38 silver badges45 bronze badges

1

Nếu chúng là các lớp riêng biệt, bạn có thể làm một cái gì đó như sau:

class ClassA {

    public $name = 'A';

    public function getName[]{
        return $this->name;
    }

}

Những gì tôi đã làm trong ví dụ này trước tiên là tạo một thể hiện mới của lớp

//file1.php


//file2.php

4. Và sau đó tôi đã tạo ra một thể hiện mới của lớp
//file1.php


//file2.php

5 mà tôi chuyển thể hiện
//file1.php


//file2.php

4 vào hàm tạo. Bây giờ
//file1.php


//file2.php

5 có thể truy cập tất cả các thành viên công cộng của lớp
//file1.php


//file2.php

4 bằng cách sử dụng
//file1.php


//file2.php

9.

include["file1.php"];
class ClassB {

    public $name = 'B';

    public function getName[]{
        return $this->name;
    }

    public function callA[]{
        $a = new ClassA[];
        return $a->getName[];
    }

    public static function callAStatic[]{
        $a = new ClassA[];
        return $a->getName[];
    }

}

$b = new ClassB[];
echo $b->callA[];
echo $b->getName[];
echo ClassB::callAStatic[];

Cũng lưu ý rằng tôi không khởi tạo lớp

//file1.php


//file2.php

4 bên trong lớp
//file1.php


//file2.php

5 vì điều đó có nghĩa là tôi đã cặp đôi hai lớp. Điều này làm cho nó khó:Nov 21, 2012 at 23:42

1

Làm thế nào gọi một chức năng từ một lớp khác trong PHP?

Làm thế nào để gọi chức năng từ một lớp khác trong câu trả lời mã PHP..
$ classa = new classa [] ;.
$ name = $ classa-> getName [] ;.
Echo $ Tên; // in John ..

Làm thế nào để bạn gọi một hàm trong một hàm trong PHP?

Nếu bạn xác định chức năng trong một chức năng khác, nó có thể được truy cập trực tiếp, nhưng sau khi gọi hàm cha. Ví dụ: function a [] {function b [] {echo "i là b."; } echo "Tôi là a.it can be accessed directly, but after calling parent function. For example: function a [] { function b[] { echo "I am b."; } echo "I am a.

Làm thế nào để bạn gọi một phương thức lớp trong PHP?

Trong lập trình hướng đối tượng trong PHP, các phương thức là các hàm bên trong các lớp ...
Đầu tiên, chúng tôi tạo một đối tượng [ví dụ $] từ ví dụ lớp ..
Tiếp theo, chúng tôi gọi phương thức Echo với -> [toán tử đối tượng] và [] [dấu ngoặc đơn].
Các dấu ngoặc đơn chứa các đối số như bình thường ..

Làm thế nào để bạn gọi một lớp trong một chức năng?

Khi chúng tôi gọi một hàm, chúng tôi nhận được giá trị trả lại của nó.Khi chúng tôi gọi một lớp học, chúng tôi sẽ nhận được một ví dụ về lớp học của lớp đó.Chúng tôi sử dụng cùng một cú pháp để xây dựng các đối tượng từ các lớp và để gọi các chức năng: thực tế này là lý do chính khiến từ có thể gọi được là một phần quan trọng trong từ vựng Python của chúng tôi.When we call a class, we get an “instance” of that class. We use the same syntax for constructing objects from classes and for calling functions: this fact is the main reason the word “callable” is such an important part of our Python vocabulary.

Bài Viết Liên Quan

Chủ Đề