Đâ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];
0Bạ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];
6Như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