Hướng dẫn how call a function from another class in php? - làm thế nào để gọi một hàm từ một lớp khác trong php?

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
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
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
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
2, làm thế nào để tôi làm điều đó? Tôi đã cố gắng chỉ làm một
//file1.php
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
3 nhưng điều đó không hoạt động.

Thanks!

Hướng dẫn how call a function from another class in php? - làm thế nào để gọi một hàm từ một lớp khác trong php?

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
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>

Đã 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
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
4. Và sau đó tôi đã tạo ra một thể hiện mới của lớp
//file1.php
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
5 mà tôi chuyển thể hiện
//file1.php
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
4 vào hàm tạo. Bây giờ
//file1.php
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
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
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
4 bằng cách sử dụng
//file1.php
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
9.

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

//file1.php
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
4 bên trong lớp
//file1.php
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
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
    name;
       }   
    }
    ?>
    
    //file2.php
    getName();
           echo $name;    //Prints John
         }
       }
    
       $classb = new ClassB();
       $classb->callA();
    ?>
    
    5 của bạn
  2. Trao đổi lớp
    //file1.php
    name;
       }   
    }
    ?>
    
    //file2.php
    getName();
           echo $name;    //Prints John
         }
       }
    
       $classb = new ClassB();
       $classb->callA();
    ?>
    
    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

Hướng dẫn how call a function from another class in php? - làm thế nào để gọi một hàm từ một lớp khác trong php?

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
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
4. Và sau đó tôi đã tạo ra một thể hiện mới của lớp
//file1.php
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
5 mà tôi chuyển thể hiện
//file1.php
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
4 vào hàm tạo. Bây giờ
//file1.php
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
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
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
4 bằng cách sử dụng
//file1.php
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
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
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
4 bên trong lớp
//file1.php
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
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 để bạn gọi một hàm từ một lớp trong một tệp PHP khác?

Chức năng của lớp gọi từ một tệp khác Php Câu trả lời mã..
$ classa = new classa () ;.
$ name = $ classa-> getName () ;.
Echo $ Tên; // in John ..

Bạn có thể gọi một chức năng từ một lớp khác không?

Trong Java, một phương thức có thể được gọi từ một lớp khác dựa trên công cụ sửa đổi truy cập của nó. Ví dụ, một phương thức được tạo với một công cụ sửa đổi công khai có thể được gọi từ bên trong cũng như bên ngoài một lớp/gói. Phương pháp được bảo vệ có thể được gọi từ một lớp khác bằng cách sử dụng kế thừa.a method can be invoked from another class based on its access modifier. For example, a method created with a public modifier can be called from inside as well as outside of a class/package. The protected method can be invoked from another class using inheritance.

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 ..