1、函数声明

<?php

	/**
* function 函数名(參数1, 參数2.... ){
* 函数体;
* 返回值;
* }
*/ $sum = sum(3, 4);
echo $sum; function sum($x, $y){
$sum = 0;
$sum = $x * $x + $y + $y;
return $sum;
}
?>

2、变量的范围

局部变量: 在函数中声明的变量就是局部变量, 仅仅能在自己的函数内部使用

全局变量: 在函数外声明的变量就是全局变量, 在变量声明以后直到整个脚本结束前都能够使用, 包含在函数中和 { } 中都可使用

2.1 知识点: 我们无法分辨出PHP的变量是声明还是使用

<?php
$a = 10;
function demo($a){
$a += 10;
echo $a . '<br>';
}
demo($a);
echo $a;
// 结果: 20, 10
// PHP的变量分不出 $a 是声明还是使用
? >

2.2 知识点: 函数中使用全局变量必须使用globalkeyword, 在声明global之后的变量才是全局的变量

<?php
$a = 10; function demo() {
global $a;
$a += 10;
echo $a . " demo <br>";
} function test() {
global $a;
$a += 5;
echo $a . "test <br>";
} echo $a . " ----<br>"; // 10 ----
demo(); // 20 demo
echo $a . " !!!!<br>"; // 20 !!!!
demo(); // 30 demo
echo $a . " @@@@<br>"; // 30 @@@@
test(); // 35 test
echo $a . " ####<br>"; // 35 ####
? >

静态变量: 仅仅能声明在函数中(类中), 不能在全局声明, 变量前使用statickeyword修饰

2.3 知识点: 静态变量在静态代码块中存储, 它的值能够一个函数多次调用之间共享, 但仅仅在第一次调用函数时声明到内存

以后再调用时就不再声明而直接使用(和Java类似)。

<?php
function test(){
static $a = 0;
$a++;
echo $a."<br>";
} test(); // 1
test(); // 2
test(); // 3
?>

3、变量函数

事实上这个和JS又非常类似, 比如: 定义$var = hello, 下次使用$var()时就将寻找与变量值同名的函数hello()

<?

php
function one($a, $b){
return $a + $b;
} function two($a, $b){
return $a * $a + $b * $b;
} function three($a, $b){
return $a * $a * $a + $b * $b * $b;
} //$var = one;
//$var = "two";
$var = three; echo "结果:".$var(3, 4)."<br>"; // 91
?>

4、系统函数

4.1 常规函数  

     bool copy (string source, string dest)



4.2 带有mixed, mixed表示能够传不论什么类型的数据

      bool chown (string filename, mixed user)

4.3 带有&參数的函数, 表示引用赋值, 这个參数不能传值, 仅仅能传一个变量。然后函数将变量的值改变。

我们在使用这个变量时,值也是变化的(和Java中传引用又是一样的)

bool arsort (array &array [, int sort_flags])

<?php
$arr=array(1, 9, 5, 8, 3, 4);
sort($arr);
print_r($arr);
?>

4.4 默认函数, 带有[]的函数, 表示这个參数是可选的,假设你传值了就使用你传的值,假设没有传值则使用默认值

     bool arsort (array &array [, int sort_flags])

<?php
function demo($a=1, $b=20, $c){
echo "### $a ### $b ### $c ###<br>";
}
demo(8,9);
?>

4.5 带有...的參数函数。 ...表示能够传随意多个參数

      int array_unshift (array &array, mixed var [, mixed ...])

<?php
function demo(){
$sum = 0;
for($i = 0; $i < func_num_args(); $i++){
$sum += func_get_arg($i);
}
return $sum;
} echo demo(1, 2, 3, 4, 5, 6, 7, 8, 9);
?>

4.6 回调函数 带有callback,  就是调用这个函数时须要我们传一个函数进来(函数名,函数名字串)

      array array_filter (array input [, callback callback])

<?php
function demo($n){
if($n % 2== 0){
return true;
}else{
return false;
}
} $a = array(1, 2, -3, 4, -5, 6, -7, 8, 9);
print_r(array_filter($a, demo)); // Array ( [1] => 2 [3] => 4 [5] => 6 [7] => 8 )
? >

5、内部函数

php能够在函数内部再声明函数, 目的就是在函数的内部调用以帮助外部函数完毕一些子功能.

<?php
function score($php, $java) {
function php($php) {
if ($php > 60)
return "及格";
else
return "不及格";
} function java($java) {
if ($java > 60)
return "及格";
else
return "不及格";
} $total = $php + $java . "分";
$agv = $total / 2 . "分";
echo "你的php成绩是 {$php} 分, " . php($php) . "<br>"; // 调用内部函数 php()
echo "你的java成绩是 {$java} 分, " . java($java) . "<br>"; // 调用内部函数 java()
echo "你的总分是: {$total} <br>";
echo "你的平均分是:{$agv} <br>";
} score(50, 90);
? >

6、递归函数

所谓的递归函数就是在自己的内部调用自己的函数

<?php
function demo($num){
echo $num."<br>";
if($num > 0){
demo($num - 1); // 自己调用自己
}else{
echo "--------------------<br>";
} echo $num."<br>";
} demo(3); /*
3
2
1
0
--------------------
0
1
2
3
*/
?>

7、重用函数

所谓的重用函数事实上就是把php, html, txt等文件或者其它文件include进来

require:    用于静态包括(如文件头, 文件尾等固定的东西)

include:    用于动态包括(不确定的文件名称)

require_once: (仅仅包括一次, 不存在函数名冲突问题, 但性能没require高)

include_once: (同上)

用法: include "config.inc.php";     include("config.inc.php")

<?php
include_once "test.inc.php";
echo $a."<br>";
test(); /*
10
##############
*/
?>

test.inc.php

<?php
$a=10; function test(){
echo "##############<br>";
}
?>

版权声明:本文博主原创文章。博客,未经同意不得转载。

阐述php(五岁以下儿童) 注意事项和使用功能的更多相关文章

  1. (五岁以下儿童)NS3样本演示:桥模块演示样品csma-bridge.cc凝视程序

    (五岁以下儿童)NS3:桥模块演示样品csma-bridge.cc凝视程序 1.Ns3 bridge模csma-bridge.cc演示示例程序的目光 // Network topology // // ...

  2. linux下一个Oracle11g RAC建立(五岁以下儿童)

    linux下一个Oracle11g RAC建立(五岁以下儿童) 四.建立主机之间的信任关系(node1.node2) 建立节点之间oracle .grid 用户之间的信任(通过ssh 建立公钥和私钥) ...

  3. python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹

    python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...

  4. PE文件结构(五岁以下儿童)基地搬迁

    PE文件结构(五岁以下儿童) 參考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 基址重定位 链接器生成一个PE文件时,它会如果程序被装入时使用的默认ImageBase基地址(VC默认 ...

  5. 阐述linux IPC(五岁以下儿童):system V共享内存

    [版权声明:尊重原创.转载请保留源:blog.csdn.net/shallnet 要么 .../gentleliu,文章学习交流,不用于商业用途]         system V共享内存和posix ...

  6. ExtJs4得知(五岁以下儿童)主要的Ext分类

    Ext类是ExtJs最常见的.最基本的类,它是一个全局对象,它封装了全班.辛格尔顿和 Sencha 该方法提供了一种有用的库. 嵌套在该命名空间中一个较低的水平最用户界面组件. 但是提供了很多有用的功 ...

  7. Scrapy研究和探索(五岁以下儿童)——爬行自己主动多页(抢别人博客所有文章)

    首先.在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中,研究的是爬取单个网页的方法.在教程(三)(http://blo ...

  8. nagios二次开发(五岁以下儿童)---nagios和nagiosql关系

    基于nagios和nagiosql理解.这将是这两个梳理比较粗糙的简单关系,有关详细信息,请参阅下面的图如:      从上面的关系图中能够看出,nagios与nagiosql共享了主机.主机组.服务 ...

  9. 开玩笑Web它servlet(五岁以下儿童)---- 如何解决servlet线程安全问题

    servlet默认值是安全线的存在,但说白,servlet安全线实际上是一个多线程线程安全问题.因为servlet它正好是一个多线程的安全问题出现. 每次通过浏览器http同意提交请求,将一个实例se ...

随机推荐

  1. self.view.layer.contents 和 self.view.backgroundColor

    一. self.view.layer.contents 和 self.view.backgroundColor 今天测了一下 :    self.view.layer.contents 和 self. ...

  2. 关于idea新建子目录时往父目录名字后叠加而不是树形结构的解决方法(转)

    我们在IDEA中创建子目录时,子目录总是在父目录后面叠加而不是树形,如下 我们可以打开项目窗口的右上角的设置标志, 将红圈选项的√先去掉,创建好子目录后再将它选中就可以

  3. [HTML] Change an HTML5 input's placeholder color with CSS

    We will look at what CSS selectors to use to change an HTML5 inputs placeholder color. This can diff ...

  4. POJ 2590 Steps (ZOJ 1871)

    http://poj.org/problem?id=2590 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1871 题目大 ...

  5. javascript 调用C++函数

    分3步: 一>实现IDispatch 接口 #ifndef _IDISPIMP_H_ #define _IDISPIMP_H_ // idispimp.h class CImpIDispatch ...

  6. matplotlib学习之散点图与条形图

    # coding:utf-8 from matplotlib import pyplot as plt import numpy as np plt.style.use('ggplot') x = n ...

  7. vmnet1 and vmnet8

    在使用VMware Workstation创建虚拟机时.创建的虚拟机中能够包含网卡.你能够依据须要选择使用何种虚拟网卡.从而表明想要连接到那个虚拟交换机.在VMware Workstation中,默认 ...

  8. js 鼠标坐标

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. 文本处理之可视化wordcloud

    什么是词云 词云又叫文字云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思. 准备工作: python开发 ...

  10. 【u010】银河英雄传说

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开 ...