Hướng dẫn get class from string php - lấy lớp từ chuỗi php

Tôi có hai lớp,

$str = 'One';
$class = 'Class'.$str;
$object = new $class();
3 và
$str = 'One';
$class = 'Class'.$str;
$object = new $class();
4. Tôi đang nhận được một chuỗi có thể là
$str = 'One';
$class = 'Class'.$str;
$object = new $class();
5 hoặc
$str = 'One';
$class = 'Class'.$str;
$object = new $class();
6.

Thay vì sử dụng câu lệnh

$str = 'One';
$class = 'Class'.$str;
$object = new $class();
7 dài như:

switch ($str) {
    case "One":
        return new ClassOne();
    case "Two":
        return new ClassTwo();
}

Có cách nào tôi có thể tạo một thể hiện bằng một chuỗi, tức là

$str = 'One';
$class = 'Class'.$str;
$object = new $class();
8 không?

Hướng dẫn get class from string php - lấy lớp từ chuỗi php

Antti29

2.91512 Huy hiệu vàng36 Huy hiệu bạc36 Huy hiệu đồng12 gold badges36 silver badges36 bronze badges

hỏi ngày 2 tháng 1 năm 2011 lúc 12:21Jan 2, 2011 at 12:21

Vâng, bạn có thể!

$str = 'One';
$class = 'Class'.$str;
$object = new $class();

Khi sử dụng không gian tên, hãy cung cấp tên đủ điều kiện:

$class = '\Foo\Bar\MyClass'; 
$instance = new $class();

Những thứ thú vị khác bạn có thể làm trong PHP là: Biến biến:
Variable variables:

$personCount = 123;
$varname = 'personCount';
echo $$varname; // echo's 123

Và các chức năng & phương pháp biến.

$func = 'my_function';
$func('param1'); // calls my_function('param1');

$method = 'doStuff';
$object = new MyClass();
$object->$method(); // calls the MyClass->doStuff() method. 

Đã trả lời ngày 2 tháng 1 năm 2011 lúc 12:23Jan 2, 2011 at 12:23

Bob Fangerbob FangerBob Fanger

Phim thương hiệu vàng 27,6K77 gold badges61 silver badges78 bronze badges

12

Bạn có thể chỉ cần sử dụng cú pháp sau để tạo một lớp mới (đây là tiện dụng nếu bạn đang tạo một nhà máy):

$className = $whatever;
$object = new $className;

Là một phương pháp nhà máy (đặc biệt thô), phương pháp nhà máy:

public function &factory($className) {

    require_once($className . '.php');
    if(class_exists($className)) return new $className;

    die('Cannot create new "' . $className . '" class - includes not found or class unavailable.');
}

Đã trả lời ngày 2 tháng 1 năm 2011 lúc 12:24Jan 2, 2011 at 12:24

Hướng dẫn get class from string php - lấy lớp từ chuỗi php

John Parkerjohn ParkerJohn Parker

53.7K11 Huy hiệu vàng128 Huy hiệu bạc128 Huy hiệu đồng11 gold badges128 silver badges128 bronze badges

1

Hãy nói

$str = 'One';
$class = 'Class'.$str;
$object = new $class();
9 được định nghĩa là:

public class ClassOne
{
    protected $arg1;
    protected $arg2;

    //Contructor
    public function __construct($arg1, $arg2)
    {
        $this->arg1 = $arg1;
        $this->arg2 = $arg2;
    }

    public function echoArgOne
    {
        echo $this->arg1;
    }

}

Sử dụng phản xạ PHP;

$str = "One";
$className = "Class".$str;
$class = new \ReflectionClass($className);

Tạo một thể hiện mới:

$instance = $class->newInstanceArgs(["Banana", "Apple")]);

Gọi một phương thức:

$str = 'One';
$class = 'Class'.$str;
$object = new $class();
0

Sử dụng một biến làm phương thức:

$str = 'One';
$class = 'Class'.$str;
$object = new $class();
1

Sử dụng phản xạ thay vì chỉ sử dụng chuỗi thô để tạo một đối tượng giúp bạn kiểm soát tốt hơn đối tượng và khả năng kiểm tra dễ dàng hơn (PHPUNIT phụ thuộc rất nhiều vào phản xạ)

Đã trả lời ngày 22 tháng 3 năm 2018 lúc 8:00Mar 22, 2018 at 8:00

Hướng dẫn get class from string php - lấy lớp từ chuỗi php

RemaderemadeRemade

3684 Huy hiệu bạc13 Huy hiệu Đồng4 silver badges13 bronze badges

0

$str = 'One';
$class = 'Class'.$str;
$object = new $class();
2

Đã trả lời ngày 14 tháng 9 lúc 23:19Sep 14 at 23:19

Hướng dẫn get class from string php - lấy lớp từ chuỗi php

Làm thế nào để tìm một lớp học trong PHP?

PHP | Get_Class () Chức năng Trả về Giá trị: Hàm này trả về tên lớp mà đối tượng là một thể hiện. Nó trả về sai nếu đối tượng không phải là một đối tượng. Nếu đối tượng bị bỏ qua khi bên trong lớp thì tên lớp được trả về. $ obj = new gfg ();get_class() Function Return Value: This function returns the class name of which object is an instance. It returns FALSE if the object is not an object. If the object is omitted when inside the class then the class name is returned. $obj = new GFG();

Làm gì :: Lớp làm trong PHP?

:: Lớp ¶ Từ khóa lớp cũng được sử dụng để giải quyết tên lớp.Để có được tên đủ điều kiện của một lớp lớp sử dụng ClassName :: Class.Điều này đặc biệt hữu ích với các lớp theo tên.class name resolution. To obtain the fully qualified name of a class ClassName use ClassName::class . This is particularly useful with namespaced classes.

Làm thế nào để có được tên của lớp hiện tại trong PHP?

Hàm get_Class () trong PHP hàm get_class () có tên của lớp của một đối tượng.Nó trả về sai nếu đối tượng không phải là một đối tượng.Nếu đối tượng bị loại trừ khi bên trong một lớp, tên của lớp đó được trả về. in PHP The get_class() function gets the name of the class of an object. It returns FALSE if object is not an object. If object is excluded when inside a class, the name of that class is returned.

Làm thế nào để bạn gọi một chức năng 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 ..