PHP Cookbook读书笔记 – 第06章函数
函数 (有些资料会将此翻译成过程,所谓的面向过程开发就是以 函数 为基础的开发)在面向对象开发(简称OO--Object-Oriented Method)时代之前,是PHP中最重要的一个部分,是代码复用唯一的方法。在OO出现之后(虽然早期PHP版本就已经有OO的身影,但真正引入
函数(有些资料会将此翻译成过程,所谓的面向过程开发就是以函数为基础的开发)在面向对象开发(简称OO--Object-Oriented Method)时代之前,是PHP中最重要的一个部分,是代码复用唯一的方法。在OO出现之后(虽然早期PHP版本就已经有OO的身影,但真正引入面向对象主要特性是在PHP5版本之后)两种方法常常会并存于一个项目中,这点和很多面向对象语言(JAVA或ASP.NET等)不太一样。其原因我个人认为原因有二:其一是由于PHP在运行函数时速度要优于面向对象(网友的速度测试),而面向对象又有其良好扩展性及实用性的优势;其二是很多项目起始于面向过程的时代,在版本更新时并没有完全去除能够显著提高速度而不影响可读性的部分面向过程的代码。
设置函数的默认值:
function wrap_html_tag($string, $tag = 'b') { return "$string$TAG>"; }
传递一个变量引用:
function wrap_html_tag(&$string, $tag = 'b') { $string = "$string$TAG>"; }
指定多个参数默认值的另一种方法:
function pc_assign_defaults($array, $defaults) { $a = array(); foreach ($defaults as $d => $v) { $a[$d] = isset($array[$d]) ? $array[$d] : $v; } return $a; } function image($img) { $defaults = array('src' => 'cow.png', 'alt' => 'milk factory', 'height' => 100, 'width' => 50 ); $img = pc_assign_defaults($img, $defaults); ... }
传递可变个数的参数:
//$numbers是可变个数 function mean($numbers) { // 初始化以消除警告 $sum = 0; // 统计参数的个数 $size = count($numbers); // 迭代数组中的元素并计算总和 for ($i = 0; $i <h4 id="返回变量的引用">返回变量的引用:</h4> <p>可以理解为return后面的值与调用<strong>函数</strong>的等号左边的变量指向的是同一个东东(内存地址)</p> <pre class="brush:php;toolbar:false">function &pc_array_find_value($needle, &$haystack) { foreach ($haystack as $key => $value) { if ($needle == $value) { return $haystack[$key]; } } } $minnesota = array('Bob Dylan', 'F. Scott Fitzgerald', 'Prince', 'Charles Schultz'); $prince =& pc_array_find_value('Prince', $minnesota); $prince = 'O(+>'; print_r($minnesota); Array ( [0] => Bob Dylan [1] => F. Scott Fitzgerald [2] => O(+> [3] => Charles Schultz )
返回多个值:
function averages($stats) { ... return array($median, $mean, $mode); } list($median, $mean, $mode) = averages($stats);
调用可变函数
(根据参数调用不同的函数,call_user_func_array()):
function get_file($filename) { return file_get_contents($filename); } function put_file($filename, $data) { return file_put_contents($filename, $data); } if ($action == 'get') { $function = 'get_file'; $args = array('graphic.png'); } elseif ($action == 'put') { $function = 'put_file'; $args = array('graphic.png', $graphic); } // calls get_file('graphic.png') // calls put_file('graphic.png', $graphic) call_user_func_array($function, $args);
动态函数(create_function()):
$add = create_function('$i,$j', 'return $i+$j;'); $add(1, 1); // returns 2

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
