Đưa ra tên của một số chức năng do người dùng xác định được lưu trữ dưới dạng chuỗi trong biến. Nhiệm vụ là gọi các hàm bằng cách sử dụng tên được lưu trữ trong các biến
Ví dụ
eval( $code )42
eval( $code )43
eval( $code )44
eval( $code )45 eval( $code )46
eval( $code )47eval( $code )48 eval( $code )0eval( $code )1
eval( $code )2
eval( $code )43
eval( $code )4
eval( $code )45 eval( $code )6____07eval( $code )8
eval( $code )47eval( $code )48 eval( $code )7eval( $code )1
eval( $code )2
eval( $code )43
eval( $code )05
eval( $code )06 eval( $code )07eval( $code )08eval( $code )1
eval( $code )420 eval( $code )07____1422eval( $code )423
eval( $code )424
Có hai phương pháp để làm điều này. Một là gọi hàm trực tiếp bằng tên biến sử dụng dấu ngoặc và tham số và cách còn lại là sử dụng Hàm call_user_func() nhưng trong cả hai phương thức, tên biến đều được sử dụng
Chương trình
eval( $code )42
eval( $code )43
eval( $code )44
eval( $code )45 eval( $code )46
eval( $code )47eval( $code )48 eval( $code )432eval( $code )1
eval( $code )2
eval( $code )43
eval( $code )4
eval( $code )45 eval( $code )6____07eval( $code )8
eval( $code )47eval( $code )48 eval( $code )7______1444eval( $code )445eval( $code )1
eval( $code )2
eval( $code )448
eval( $code )06 eval( $code )07eval( $code )08eval( $code )1
eval( $code )420 eval( $code )07____1422eval( $code )456
eval( $code )448
eval( $code )458
eval( $code )06eval( $code )460
eval( $code )420eval( $code )462eval( $code )0eval( $code )464
eval( $code )43
eval( $code )48 eval( $code )467eval( $code )1
eval( $code )43
eval( $code )470
eval( $code )471
________ 1472 ________ 106 ________ 1464
eval( $code )472eval( $code )420eval( $code )477eval( $code )478eval( $code )479
eval( $code )43
eval( $code )424
đầu ra. eval( $code )4
Phương pháp khác. Sử dụng hàm eval(). Hàm eval() là một hàm sẵn có trong PHP được sử dụng để đánh giá chuỗi dưới dạng mã PHP.
Lưu ý. Phương pháp này được đóng góp bởi Vineet Joshi.
Cú pháp.
Thông số. Hàm này chấp nhận mã tham số duy nhất được sử dụng để giữ mã PHP dưới dạng chuỗi
Hãy nhớ những phòng thí nghiệm ảnh kỹ thuật số kéo dài một phút đó, họ tạo ảnh của bạn và cung cấp cho bạn bộ tám hoặc bốn ảnh chỉ bằng một cú nhấp chuột. Vì vậy, ai đang thực hiện phần mà họ phải sắp xếp ảnh của bạn trong một phần mềm nâng cao hình ảnh để sửa ánh sáng và độ tương phản, sắp xếp chúng theo bốn hoặc tám rồi in chúng?
TÓM LƯỢC
ĐẦU VÀO. (ẢNH ẢNH, SỐ LƯỢNG i. e 4 hoặc 8)
CHẾ BIẾN. NÂNG CAO ĐỘ TƯƠNG PHẢN VÀ ÁNH SÁNG CỦA HÌNH ẢNH V.V VÀ CHUẨN BỊ CHO IN THEO SỐ LƯỢNG YÊU CẦU
ĐẦU RA. IN ẢNH SẮP XẾP VÀ CẮT THEO SỐ LƯỢNG MONG MUỐN
THẾ GIỚI THỰC VÍ DỤ 2
Ví dụ đơn giản nhất về các chức năng, trong cuộc sống thực, là máy cắt khoai tây chiên đơn giản của bạn. Bạn chỉ cần ấn củ khoai tây vào đó và nó sẽ biến khoai tây thành khoai tây chiên tối đa có thể với kích thước và hình dạng cụ thể
TÓM LƯỢC
bạn có thể đoán ĐẦU VÀO, CHẾ BIẾN và ĐẦU RA của ví dụ này không?
Vâng rất tốt,
ĐẦU VÀO. ĐƯA KHOAI TÂY VÀO MÁY CẮT
CHẾ BIẾN. CẮT KHOAI TÂY THEO HÌNH DẠNG VÀ KÍCH THƯỚC ĐƯỢC THIẾT KẾ SẴN
ĐẦU RA. SẢN XUẤT KHOAI TÂY CHIÊN MONG MUỐN
Hãy chuyển sang thế giới lập trình với những khái niệm này về các ví dụ trong thế giới thực
CHỨC NĂNG LÀ GÌ?
Một bộ mã / hướng dẫn để thực hiện một nhiệm vụ nhất định, khi được gọi
Tại sao chúng ta cần Chức năng?
Khi bạn phải thực hiện đi thực hiện lại cùng một tác vụ, bạn có thể sử dụng lại mã của mình. Các hàm cũng giúp việc bảo trì mã của bạn trở nên dễ dàng và đơn giản. Code là một phần không thể thiếu trong lập trình hướng đối tượng
THỰC HÀNH LẬP TRÌNH TỐT. Một chức năng chỉ nên thực hiện một nhiệm vụ cụ thể tại một thời điểm để loại bỏ sự mơ hồ và làm cho nó độc lập. Ví dụ, bạn sẽ bị sốc khi mua bánh pizza trong quán cà phê starbucks. )
Bạn thấy đấy, tôi đã nói với bạn rằng hàm là một trong những thứ dễ hiểu nhất. Bây giờ hãy cùng tìm hiểu về Hàm trong PHP
Trong PHP, bạn định nghĩa một hàm như sau
eval( $code )6eval( $code )7____38eval( $code )9Ví dụ nhanh về các hàm PHP
Viết một hàm trong PHP để in tên trang web của bạn
eval( $code )0eval( $code )1eval( $code )2eval( $code )9eval( $code )4Bạn có thể gọi chức năng này là "bất cứ nơi nào" trong mã php của mình là
eval( $code )0eval( $code )70eval( $code )4Tôi đã nói, "bất cứ nơi nào" bởi vì không giống như các ngôn ngữ lập trình nghiêm ngặt khác, trong PHP bạn không nhất thiết phải xác định thân hàm trước khi gọi nó
Hãy nhớ rằng, hãy cố gắng viết các hàm của bạn để tạo đầu ra ở dạng đơn giản nhất để có quyền kiểm soát tối đa đối với đầu ra của chúng hay nói cách khác KHÔNG TRỘN TRÌNH TRÌNH BÀY (HTML/CSS ETC) VỚI XỬ LÝ (PHP). Hãy xem xét một tình huống mà bạn phải in tên trang web của mình trên cùng một trang bằng hai màu. đen và trắng
Một cách là viết mã định dạng trong chức năng của bạn như
eval( $code )0eval( $code )1eval( $code )74eval( $code )75eval( $code )9eval( $code )4Nó có nghĩa là cho màu trắng tôi. e #fff bạn phải viết thêm một hàm nữa. Điều đó có nghĩa là "REDUNDANCEY" là một con quái vật trong thực hành lập trình tốt
Now consider one more situation where you want to print your website name in your tags. can you call this above function? ...
Đừng nói với tôi là bạn nói CÓ. . -S
Vì vậy, hãy tạo một hàm trả về tên trang web của bạn mà không gặp bất kỳ phiền phức nào khác
eval( $code )0eval( $code )1eval( $code )80eval( $code )9eval( $code )4Hãy in nó TRẮNG
eval( $code )83Đối với màu đen
eval( $code )84Để sử dụng trong thẻ tiêu đề
eval( $code )85Bạn có thấy lời gọi hàm giống nhau nhưng nó đang thực hiện ba công việc khác nhau bởi vì,
- chức năng không sử dụng Presentation/HTML
- nó chỉ thực hiện một nhiệm vụ tôi. e để trả lại tên trang web
Trước khi tìm hiểu sâu hơn về hàm, chúng ta hãy ghi nhớ một số quy tắc khi viết hàm trong PHP
- hàm phải được bắt đầu bằng TỪ KHÓA "hàm" trước tên hàm
- tên hàm có thể bắt đầu bằng dấu gạch dưới (_) hoặc bảng chữ cái nhưng không phải là số
- tất cả mã thân hàm phải nằm trong dấu ngoặc nhọn mở và đóng " { } "
SỬ DỤNG THAM SỐ TRONG CÁC HÀM
Các thông số là ĐẦU VÀO. Bạn có thể chuyển tất cả các kiểu dữ liệu PHP làm tham số hàm. Hãy viết một hàm nhận hai số và hiển thị kết quả bổ sung của chúng,
eval( $code )0eval( $code )96______397eval( $code )9eval( $code )99eval( $code )00Bạn có biết kết quả của lệnh gọi hàm này không?. hmm, nếu bạn nói 4, bạn đã sai, tôi sợ
Nếu bạn để ý kỹ, tôi đã viết SAI tên hàm trong lệnh gọi hàm. lệnh gọi hàm của tôi là addTwoNumber trong khi tên hàm kết thúc bằng 's' i. e addTwoNumbers
PHP sẽ đưa ra cảnh báo về chức năng không xác định
Vì vậy, hãy thực hiện cuộc gọi chính xác
eval( $code )01Bây giờ cái này hiển thị 4
TIỀN BOA. một số lập trình viên sao chép tên hàm trong GỌI từ ĐỊNH NGHĨA của nó trong khi viết mã để tránh bất kỳ lỗi chính tả nào, điều này trở thành một lỗi bình thường khi làm việc trên các dự án lớn, đặc biệt là OOP
TIỀN BOA. để làm cho mã của bạn hợp lý hơn, hãy viết các tên hàm có ý nghĩa e. g "addTwoNumbers" là tên hàm tốt hơn nhiều so với "funcadd2"
TIỀN BOA. "addTwoNumbers" dễ đọc hơn "addtwonumbers" hoặc "add2numbers"
Luôn luôn là một cách thực hành lập trình tốt để làm theo các mẹo lập trình tiêu chuẩn ngay từ đầu quá trình học tập của bạn để biến chúng thành thói quen của bạn
CHUYỂN Mảng ĐẾN MỘT HÀM
Truyền mảng cho hàm dưới dạng tham số cũng giống như truyền biến. Tôi đã nói rằng bạn có thể chuyển bất kỳ loại KIỂU DỮ LIỆU PHP nào làm tham số của hàm, thậm chí cả hình ảnh, xử lý tệp, đối tượng, v.v.
eval( $code )02eval( $code )03eval( $code )04eval( $code )05eval( $code )06eval( $code )07TIỀN BOA. bình luận mã của bạn có thể giúp bạn tiết kiệm rất nhiều thời gian và trong cuộc sống thực tế của bạn, có thể là công việc của bạn
Hãy gọi chức năng này ngay bây giờ
eval( $code )08
THÔNG SỐ TÙY CHỌN
Tên hàm của bạn có thể có các tham số tùy chọn i. e nó có thể được chuyển hoặc không được chuyển từ lệnh gọi hàm. Chẳng hạn, trong chức năng trên, bạn muốn hiển thị tất cả các ngôn ngữ nhưng cũng hiển thị ngôn ngữ yêu thích của mình, tuy nhiên, bạn có thể gửi tên ngôn ngữ yêu thích
eval( $code )02eval( $code )10eval( $code )04eval( $code )05eval( $code )06eval( $code )14______415eval( $code )16eval( $code )07Xem hai lệnh gọi hàm sau
eval( $code )18eval( $code )08eval( $code )20eval( $code )21eval( $code )22eval( $code )23eval( $code )24LỜI KHUYÊN VỀ THÔNG SỐ TÙY CHỌN
- bạn xác định giá trị mặc định cho tham số TÙY CHỌN trong danh sách tham số chức năng của mình
- luôn luôn, hãy tập trung, xác định các tham số tùy chọn của bạn ở phần lớn bên phải của danh sách tham số của bạn
Để giải thích điểm thứ hai ở đây, hãy xem đoạn mã sau
eval( $code )25eval( $code )26______39eval( $code )28eval( $code )29eval( $code )9TIỀN BOA. để so sánh giá trị NULL, bạn cũng có thể sử dụng hàm is_null() tích hợp sẵn trong PHP nhưng theo kiểm tra điểm chuẩn so sánh NULL với === thì nhanh hơn
CHUYỂN THAM SỐ BẰNG THAM KHẢO
Đây được coi là một trong những chủ đề phức tạp nhất đối với người mới, tốt, nó đơn giản. khi bạn chuyển qua tham chiếu thì bất kỳ quá trình xử lý nào được thực hiện bên trong thân hàm sẽ ảnh hưởng đến biến của bạn trong phạm vi vòng đời của nó. e. g
eval( $code )91eval( $code )92______393eval( $code )9eval( $code )95eval( $code )96eval( $code )97eval( $code )98Để chuyển qua tham chiếu, bạn sử dụng ký hiệu và '&' trong định nghĩa tham số chức năng. Kể từ php 5. 3. 0 bạn không nên sử dụng & đăng nhập chức năng gọi. nếu được sử dụng, nó sẽ đưa ra cảnh báo không dùng nữa. Từ PHP5. 4. 0 nó báo lỗi nghiêm trọng. vì vậy chỉ sử dụng nó trong định nghĩa tham số
Chuyển qua tham chiếu có thể rất sâu với các tác vụ nâng cao. Tôi đã thực hiện vô số dự án và tôi hiếm khi sử dụng PASS BY THAM KHẢO. Tuy nhiên, nếu bạn đang muốn nghiên cứu bằng cách tham khảo sâu hơn thì hãy đọc Hướng dẫn sử dụng PHP và kiểm tra nhận xét của người dùng
TIỀN BOA. một biến được xác định trong thân hàm chỉ hoạt động trong thân hàm. Nó không có tác dụng/phạm vi bên ngoài thân hàm, trừ khi được chuyển qua tham chiếu như trên
_______399____440____441____39eval( $code )43Vì vậy, cùng một tên biến không có tác dụng gì ở đây, bởi vì $name của thân hàm là một biến khác thì biến cùng tên bên ngoài thân hàm
TRẢ LẠI ĐẦU RA TỪ CHỨC NĂNG
Trong lập trình cấp độ nâng cao, bạn sẽ 'thường' trả về đầu ra từ một hàm thay vì 'hiển thị' nó trong nội dung hàm. Bởi vì trong lập trình web hiện đại, bạn có các khung xử lý TRÌNH BÀY riêng biệt hơn LOGIC/XỬ LÝ. vì vậy bạn chỉ cần lấy đầu ra và sau đó cung cấp cho mã PRESENTATION để định dạng nó
Bạn có thể trả về tất cả các loại KIỂU DỮ LIỆU PHP từ một hàm cho dù là một chuỗi đơn giản, biến, mảng và thậm chí là một đối tượng
Bạn sử dụng TỪ KHÓA "return" để trả về một giá trị từ hàm
eval( $code )44eval( $code )45eval( $code )9eval( $code )47Nó hiển thị "Haroon Ahmad"
TÊN CHỨC NĂNG BIẾN
Bạn có thể sử dụng một biến để gọi một hàm e. g
_______448____449____400eval( $code )01NHƯNG, điều này có thể làm cho mã hóa trở nên mơ hồ. Vì vậy, đối với tôi, tôi sẽ tránh thực hành như vậy trừ khi được yêu cầu một cách nghiêm túc
GỌI MỘT HÀM TỪ MỘT CHỨC NĂNG KHÁC
Bạn có thể gọi một hàm từ phần thân của một hàm khác
Hãy xem xét đoạn mã sau
eval( $code )02multiply($one + $two, 2);
}
echo $result * $multiplyBy;
}
SỬ DỤNG GIÁ TRỊ TRẢ LẠI CỦA MỘT HÀM LÀM THAM SỐ CỦA HÀM KHÁC
Bạn có thể sử dụng giá trị trả về của hàm để chuyển làm đối số cho lệnh gọi hàm khác. Xem ví dụ sau
eval( $code )02return($one + $two);
}
echo $result * 10;
}
nhân(thêm(2,2));
GỌI MỘT CHỨC NĂNG TỪ CƠ THỂ RIÊNG CỦA NÓ
Bây giờ hãy để tôi kiểm tra bộ não của bạn - đầu ra của đoạn mã sau là gì?
eval( $code )07eval( $code )08return add($one);
} else {
return $one + $two;
}
hmm khó khăn, phải không? . đầu ra của nó là 2. Nhưng bất kể độ phức tạp của ví dụ này là gì, tôi muốn cho bạn thấy rằng bạn có thể gọi một hàm từ chính phần thân của nó. Giống như ở đây add() được gọi trong nội dung của chính nó
Chức năng tích hợp PHP là gì?
PHP có nhiều hàm tích hợp. Chúng đã được xác định để thực hiện một số tác vụ nhất định. Bạn chỉ cần gọi chúng với các tham số chính xác để thực hiện các tác vụ mong muốn. lối ra();
Bạn có thể đọc Hướng dẫn sử dụng hàm PHP để biết thêm chi tiết về các hàm tích hợp
hàm tích hợp implode và is_array
implode() chuyển đổi một mảng thành một chuỗi có giá trị keo
is_array() rất thuận tay và bạn sẽ sử dụng nó rất nhiều. Nó tìm ra biến được cung cấp có phải là một mảng hay không
Sau đây, một ví dụ hơi phức tạp, tôi sẽ sử dụng cả hai để cho bạn thấy chúng hoạt động như thế nào
eval( $code )701eval( $code )702eval( $code )9eval( $code )704eval( $code )705Bạn có thể nghiên cứu phát nổ (), một chức năng tích hợp hữu ích khác mà bạn sẽ sử dụng rất nhiều trong các dự án thực tế của mình
Với điều này, tôi đoán chúng ta đã đi đến phần cuối của Thảo luận về hàm PHP. Điều này chắc chắn sẽ cung cấp cho bạn một khái niệm cơ bản về cách PHP xử lý các chức năng. Trong Hướng dẫn lập trình hướng đối tượng của tôi, tôi sẽ thảo luận thêm về vấn đề này và sẽ cho bạn thấy một số ví dụ rất chi tiết về Hàm. Lập trình Nâng cao và Thực hành là tất cả về việc sử dụng Hàm. Vì vậy, hãy thực hành chúng càng nhiều càng tốt để bạn có thể hiểu rõ tất cả các khái niệm của mình, đọc hướng dẫn sử dụng PHP và vui lòng liên hệ lại với tôi với tất cả các câu hỏi và nhận xét của bạn