Tiếng vang có giống như trả về php không?

Vâng, tôi đã googled câu hỏi này và thậm chí còn tham khảo sách giáo khoa của tôi (PHP của Don Gosselin) nhưng tôi thực sự không thể hiểu được lời giải thích

Từ sự hiểu biết của tôi

echo = hiển thị kết quả cuối cùng của hàm

return = trả về giá trị từ một hàm

Tôi đã áp dụng cả

def func(): return h
def anotherfunc(h):
   return func()
1 và
def func(): return h
def anotherfunc(h):
   return func()
2 trong các chức năng sau Tôi không thấy được sự khác biệt hay 'hiệu quả' của việc sử dụng
def func(): return h
def anotherfunc(h):
   return func()
2 thay vì
def func(): return h
def anotherfunc(h):
   return func()
1

Using echo";
function add1($x, $y){
    $total = $x + $y;
    echo $total;
}
echo "

2 + 2 = ", add1(2, 2), "

"; echo "

Using return

"; function add2($x, $y){ $total = $x + $y; return $total; } echo "

2 + 2 = ", add2(2, 2), "

"; ?>

Cả hai đều hiển thị kết quả.
Tôi không hiểu điều gì?

Giải pháp tốt nhất

Tôi sẽ đưa ra một câu trả lời hoàn toàn phi kỹ thuật về vấn đề này

Giả sử có một cô gái tên là Sally Function. Bạn muốn biết cô ấy có thích bạn hay không. Vì vậy, vì bạn đang học tiểu học, bạn quyết định chuyển cho Sally một ghi chú (gọi hàm có tham số) hỏi cô ấy xem cô ấy có thích bạn hay không. Bây giờ những gì bạn dự định làm là hỏi cô ấy điều này và sau đó nói với mọi người những gì cô ấy nói với bạn. Thay vào đó, bạn hỏi cô ấy và sau đó cô ấy nói với mọi người. Điều này tương đương với việc quay lại (bạn lấy thông tin và làm điều gì đó với nó) so với việc cô ấy lặp lại (nói với mọi người mà bạn không có bất kỳ sự kiểm soát nào)

Trong trường hợp của bạn, điều đang xảy ra là khi Sally

def func(): return h
def anotherfunc(h):
   return func()
1s, cô ấy đang giành quyền kiểm soát từ bạn và nói "Tôi sẽ nói với mọi người điều này ngay bây giờ" thay vì bạn có thể nhận được phản hồi của cô ấy và làm những gì bạn muốn làm với nó. Tuy nhiên, kết quả cuối cùng là bạn đang nói với mọi người cùng một lúc vì bạn đang lặp lại những gì cô ấy đã lặp lại nhưng không quay lại (cô ấy cắt ngang bạn khi bạn nói với cả lớp rằng cô ấy có thích bạn hay không)

Giải pháp liên quan

Đâu là sự khác biệt giữa methodvà function

Hàm là một đoạn mã được gọi theo tên. Nó có thể được truyền dữ liệu để hoạt động trên (i. e. tham số) và có thể tùy chọn trả về dữ liệu (giá trị trả về). Tất cả dữ liệu được chuyển đến một chức năng được chuyển rõ ràng

Một phương thức là một đoạn mã được gọi bằng một tên được liên kết với một đối tượng. Trong hầu hết các khía cạnh, nó giống hệt với một chức năng ngoại trừ hai điểm khác biệt chính

  1. Một phương thức được ngầm truyền đối tượng mà nó được gọi
  2. Một phương thức có thể hoạt động trên dữ liệu được chứa trong lớp (hãy nhớ rằng một đối tượng là một thể hiện của một lớp - lớp là định nghĩa, đối tượng là một thể hiện của dữ liệu đó)

(đây là giải thích đơn giản hóa, bỏ qua các vấn đề về phạm vi, v.v. )

Sự khác biệt giữa 'đóng cửa' và 'lambda'

Lambda chỉ là một hàm ẩn danh - một hàm được xác định không có tên. Trong một số ngôn ngữ, chẳng hạn như Scheme, chúng tương đương với các hàm được đặt tên. Trên thực tế, định nghĩa hàm được viết lại dưới dạng ràng buộc lambda với một biến bên trong. Trong các ngôn ngữ khác, như Python, có một số khác biệt (khá không cần thiết) giữa chúng, nhưng chúng hoạt động theo cùng một cách khác

Bao đóng là bất kỳ chức năng nào đóng trên môi trường mà nó được xác định. Điều này có nghĩa là nó có thể truy cập các biến không có trong danh sách tham số của nó. ví dụ

def func(): return h
def anotherfunc(h):
   return func()

Điều này sẽ gây ra lỗi vì

def func(): return h
def anotherfunc(h):
   return func()
6 không đóng trên môi trường trong
def func(): return h
def anotherfunc(h):
   return func()
0 -
def func(): return h
def anotherfunc(h):
   return func()
1 không xác định.
def func(): return h
def anotherfunc(h):
   return func()
6 chỉ đóng trên môi trường toàn cầu. Điều này sẽ làm việc

def anotherfunc(h):
    def func(): return h
    return func()

Bởi vì ở đây,

def func(): return h
def anotherfunc(h):
   return func()
6 được định nghĩa trong
def func(): return h
def anotherfunc(h):
   return func()
0 và trong python 2. 3 trở lên (hoặc một số như thế này) khi chúng gần như đã đóng chính xác (đột biến vẫn không hoạt động), điều này có nghĩa là nó đóng trên môi trường của
def func(): return h
def anotherfunc(h):
   return func()
0 và có thể truy cập các biến bên trong nó. Trong Trăn 3. 1+, đột biến cũng hoạt động khi sử dụng từ khóa
def func(): return h
def anotherfunc(h):
   return func()
6

Một điểm quan trọng khác -

def func(): return h
def anotherfunc(h):
   return func()
6 sẽ tiếp tục đóng trên môi trường của
def func(): return h
def anotherfunc(h):
   return func()
0 ngay cả khi nó không còn được đánh giá trong
def func(): return h
def anotherfunc(h):
   return func()
0. Mã này cũng sẽ hoạt động

def func(): return h
def anotherfunc(h):
   return func()
0

Điều này sẽ in 10

Điều này, như bạn nhận thấy, không liên quan gì đến lambda - chúng là hai khái niệm khác nhau (mặc dù có liên quan)

Đâu là sự khác biệt giữa echovà return?

Echo cho phép bạn gửi một giá trị tới trình duyệt để hiển thị cho người dùng. Trả về cho phép bạn kết thúc một hàm, cũng như chuyển một giá trị cho một hàm hoặc biến khác .

Giá trị trả về của echo trong PHP là gì?

echo và print ít nhiều giống nhau. Cả hai đều được sử dụng để xuất dữ liệu ra màn hình. Sự khác biệt là nhỏ. echo không có giá trị trả về trong khi print có giá trị trả về là 1 nên có thể sử dụng nó trong các biểu thức.

Tôi có thể sử dụng cái gì thay vì echo trong PHP?

Câu lệnh in PHP in . Giống như tiếng vang, bản in cũng là một cấu trúc ngôn ngữ không phải là một chức năng thực sự. Vì vậy, bạn cũng có thể sử dụng nó mà không cần dấu ngoặc đơn như. in hoặc in().

Tiếng vang PHP hoạt động như thế nào?

Echo chỉ cần xuất chuỗi mà nó cho , nếu xem trên trình duyệt sẽ xuất chuỗi ra trình duyệt, nếu qua . trong chỉ mục. php và phụ trợ.