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. 2、JNI说明

    JNI (Java Native Interface) 1. JAVA调用CLinux是用C语言写的,可以写一个APP简单调用open,read,write来访问驱动程序;Android是用Java写 ...

  2. ftp 下载时防止从缓存中获取文件

    //http://baike.baidu.com/link?url=QucJiA_Fg_-rJI9D4G4Z4687HG4CfhtmBUd5TlXrcWCeIEXCZxIh0TD7ng1wROAzAu ...

  3. [Nuxt] Navigate with nuxt-link and Customize isClient Behavior in Nuxt and Vue.js

    Because Nuxt renders pages on the server, you should use the nuxt-link components to navigate betwee ...

  4. CSDN日报20170406 ——《代码非常烂,所以离职。》

    [程序人生]代码非常烂.所以离职? 作者:stormzhang 我在面试的时候一般会问这么一个问题:你为什么离职? 当中有不少同学会提到这么一个原因.现在的项目代码太烂了,前人留下了非常多坑,我实在忍 ...

  5. js获取浏览器和元素对象的尺寸

    1.屏幕尺寸 window.screen.height //屏幕分辨率的高 window.screen.width //屏幕分辨率的宽 window.screen.availHeight //屏幕可用 ...

  6. UE4制作插件的插件神器pluginCreator

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/45644007 作者:car ...

  7. spring里头各种获取ApplicationContext的方法

    为啥写这个文章呢?spring各个版本不同,以及和系统框架套在一起不同,导致获取的方式不同,网络上各种版本,太乱了,写获取方式的人都不写这个获取方式是在本地还是在WEB,在那种应用服务器下,在spri ...

  8. wPaint在线绘图插件

    wPaint在线绘图插件 一.总结 一句话总结: 1.搜画图插件的时候关键词应该搜什么? jquery画图插件 js画图插件 jquery绘图插件 这些 二.在线绘图插件--wPaint 的实际应用 ...

  9. php模拟post提交文件图片等

    <?php /** * Email net.webjoy@gmail.com * author jackluo * 2014.11.21 * */ //* function curl_post( ...

  10. xml传参

    前端调用后端方法时要传递多个参数,在前端js中拼接xml形式的字符串: var args = "<?xml version='1.0' encoding='utf-8' ?>&q ...