Hướng dẫn call function in same class php - gọi hàm trong cùng một lớp php

Đây có lẽ là một câu hỏi thực sự đơn giản tuy nhiên Google không phải là bạn của tôi ngày hôm nay.

Tôi có một cái gì đó như thế này nhưng nó nói rằng hãy gọi đến chức năng không xác định


Nico Haase

10,4K35 Huy hiệu vàng39 Huy hiệu bạc61 Huy hiệu Đồng35 gold badges39 silver badges61 bronze badges

Hỏi ngày 21 tháng 12 năm 2009 lúc 8:31Dec 21, 2009 at 8:31

Ben Shelockben ShelockBen Shelock

Huy hiệu vàng 19.4K2626 gold badges91 silver badges124 bronze badges

Hãy thử những điều sau:

return $this->doSomething[$str];

Đã trả lời ngày 21 tháng 12 năm 2009 lúc 8:36Dec 21, 2009 at 8:36

KonamimankonamimanKonamiman

49.1K17 Huy hiệu vàng112 Huy hiệu bạc136 Huy hiệu đồng17 gold badges112 silver badges136 bronze badges

1

Bạn có thể thử một cuộc gọi tĩnh như thế này:

function doAnother [$str] {
    return self::doSomething[$str];
}

Hoặc nếu bạn muốn biến nó thành một cuộc gọi động, bạn có thể sử dụng $ từ khóa này, do đó gọi một hàm của một thể hiện lớp:

function doAnother [$str] {
    return $this->doSomething[$str];
}

Đã trả lời ngày 21 tháng 12 năm 2009 lúc 8:36Dec 21, 2009 at 8:36

KonamimankonamimanIgor Zinov'yev

49.1K17 Huy hiệu vàng112 Huy hiệu bạc136 Huy hiệu đồng1 gold badge32 silver badges49 bronze badges

try:

return $this->doSomething[str];

Đã trả lời ngày 21 tháng 12 năm 2009 lúc 8:36Dec 21, 2009 at 8:36

The.Anti.9The.Anti.9The.Anti.9

Konamimankonamiman47 gold badges120 silver badges161 bronze badges

Tôi chưa quen với các lớp PHP và tôi tự hỏi làm thế nào tôi có thể gọi một chức năng nằm trong cùng một lớp tôi gọi nó từ đó. Là đúng hay là cách tiếp cận tốt nhất?

page1.php:

 $object=new MyClass[];
 $object->func1[]; 

MyClass.php:

class MyClass{

    function func1[]{
        ....
         $object->func2[];
    }

    function func2[]{
        ....
    }

}

Lý do tôi muốn làm điều này là vì func1 sẽ gọi func2 ở cuối func1 nhưng tôi cũng sẽ cần sử dụng func2 độc lập với func1 trong các trường hợp khác và tôi nghĩ nếu điều này là nó sẽ cắt giảm mã [mặc dù nó sẽ là một bản sao/dán đơn giản từ func2 và đặt nó ở cuối func1].

Chỉnh sửa: Hoặc tôi có thể sử dụng:

self::func2[];

Hỏi ngày 26 tháng 10 năm 2012 lúc 7:14Oct 26, 2012 at 7:14

Đã vẽDrew

7963 Huy hiệu vàng11 Huy hiệu bạc23 Huy hiệu đồng3 gold badges11 silver badges23 bronze badges

Bạn có thể sử dụng

return $this->doSomething[$str];
1 để chỉ đối tượng hiện tại và do đó gọi
return $this->doSomething[$str];
2.

[Giá trị của

return $this->doSomething[$str];
1 được sử dụng tự động bởi PHP khi bạn ở trong bối cảnh của đối tượng.]

Đã trả lời ngày 26 tháng 10 năm 2012 lúc 7:15Oct 26, 2012 at 7:15

AmberamberAmber

491K81 Huy hiệu vàng618 Huy hiệu bạc546 Huy hiệu đồng81 gold badges618 silver badges546 bronze badges

4

Thay vì

$object->func2

viết

$this->func2[]

Đã trả lời ngày 26 tháng 10 năm 2012 lúc 7:16Oct 26, 2012 at 7:16

LeifleifLeif

2.0932 Huy hiệu vàng15 Huy hiệu bạc26 Huy hiệu đồng2 gold badges15 silver badges26 bronze badges

return $this->doSomething[$str];
0

Bạn có thể sử dụng

return $this->doSomething[$str];
1 để gọi các hàm bên trong và các biến bên trong trong một lớp

Đã trả lời ngày 26 tháng 10 năm 2012 lúc 7:17Oct 26, 2012 at 7:17

Arunarunarun

3.6573 huy hiệu vàng28 Huy hiệu bạc54 Huy hiệu đồng3 gold badges28 silver badges54 bronze badges

Nếu bạn muốn gọi từ func1 sử dụng

return $this->doSomething[$str];
5

Để gọi từ bên ngoài lớp, hãy sử dụng

return $this->doSomething[$str];
6

Nhưng nếu bạn không cần func2, bạn có thể di chuyển mã đến cuối func1, bạn có thể cần thay đổi một số mã từ func2, đó là lựa chọn của bạn.

Đã trả lời ngày 26 tháng 10 năm 2012 lúc 7:18Oct 26, 2012 at 7:18

RizrizRiz

9.3758 Huy hiệu vàng38 Huy hiệu bạc54 Huy hiệu Đồng8 gold badges38 silver badges54 bronze badges

Đối với Drupal V9 với AWS Lightsail Php V8

$ object = new \ drupal \ rawCustom \ điều khiển \ rawCustomControll []; $ cont = $ object-> getMarketingBanner [];

Đã trả lời ngày 30 tháng 9 lúc 11:13Sep 30 at 11:13

Có thể gọi một chức năng trong một lớp?

Các chức năng có thể được gọi là người được gọi là ngôn ngữ lập trình. Một lớp có thể gọi được là một chút độc đáo hơn một chút. Trong JavaScript, cú pháp khởi tạo lớp [cách chúng tôi tạo ra một thể hiện của một lớp của một lớp] liên quan đến từ khóa mới.. A class being callable is a bit more unique though. In JavaScript the class instantiation syntax [the way we create an “instance” of a class] involves the new keyword.

Bạn có thể có hai chức năng có cùng tên trong một lớp PHP không?

Bạn không thể quá tải các chức năng PHP.Chữ ký chức năng chỉ dựa trên tên của chúng và không bao gồm danh sách đối số, vì vậy bạn không thể có hai hàm cùng tên.Quá tải phương pháp lớp khác nhau trong PHP so với nhiều ngôn ngữ khác.you cannot have two functions with the same name. Class method overloading is different in PHP than in many other languages.

Làm thế nào chúng ta có thể gọi một hàm bên trong một hàm khác trong PHP?

Nếu bạn muốn xác định các hàm trong hàm trong PHP, bạn có thể làm điều đó như thế này: function a [] {function b [] {echo 'i am b';} hàm c [] {echo 'i là c';} } một[];B [];c[];Bạn phải gọi hàm cha trước, sau đó các chức năng bên trong.You must call the parent function first, then the functions inside.

Chức năng lớp có thể gọi chức năng lớp khác không?

Chúng ta có thể gọi phương thức của một lớp khác bằng cách sử dụng tên lớp và chức năng của họ với toán tử DOT..

Bài Viết Liên Quan

Chủ Đề