阐述php(五岁以下儿童) 注意事项和使用功能
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(五岁以下儿童) 注意事项和使用功能的更多相关文章
- (五岁以下儿童)NS3样本演示:桥模块演示样品csma-bridge.cc凝视程序
(五岁以下儿童)NS3:桥模块演示样品csma-bridge.cc凝视程序 1.Ns3 bridge模csma-bridge.cc演示示例程序的目光 // Network topology // // ...
- linux下一个Oracle11g RAC建立(五岁以下儿童)
linux下一个Oracle11g RAC建立(五岁以下儿童) 四.建立主机之间的信任关系(node1.node2) 建立节点之间oracle .grid 用户之间的信任(通过ssh 建立公钥和私钥) ...
- python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹
python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...
- PE文件结构(五岁以下儿童)基地搬迁
PE文件结构(五岁以下儿童) 參考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 基址重定位 链接器生成一个PE文件时,它会如果程序被装入时使用的默认ImageBase基地址(VC默认 ...
- 阐述linux IPC(五岁以下儿童):system V共享内存
[版权声明:尊重原创.转载请保留源:blog.csdn.net/shallnet 要么 .../gentleliu,文章学习交流,不用于商业用途] system V共享内存和posix ...
- ExtJs4得知(五岁以下儿童)主要的Ext分类
Ext类是ExtJs最常见的.最基本的类,它是一个全局对象,它封装了全班.辛格尔顿和 Sencha 该方法提供了一种有用的库. 嵌套在该命名空间中一个较低的水平最用户界面组件. 但是提供了很多有用的功 ...
- Scrapy研究和探索(五岁以下儿童)——爬行自己主动多页(抢别人博客所有文章)
首先.在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中,研究的是爬取单个网页的方法.在教程(三)(http://blo ...
- nagios二次开发(五岁以下儿童)---nagios和nagiosql关系
基于nagios和nagiosql理解.这将是这两个梳理比较粗糙的简单关系,有关详细信息,请参阅下面的图如: 从上面的关系图中能够看出,nagios与nagiosql共享了主机.主机组.服务 ...
- 开玩笑Web它servlet(五岁以下儿童)---- 如何解决servlet线程安全问题
servlet默认值是安全线的存在,但说白,servlet安全线实际上是一个多线程线程安全问题.因为servlet它正好是一个多线程的安全问题出现. 每次通过浏览器http同意提交请求,将一个实例se ...
随机推荐
- shiro 中的filterChainDefinitions详解(转)
springrain使用shiro控制权限,配置filterChainDefinitions结合数据库校验权限. 我们在web.xml中配置一个全局过滤器,也就是在springrain配置的是一个sp ...
- JSP中文件的上传于下载演示样例
一.文件上传的原理 1.文件上传的前提: a.form表单的method必须是post b.form表单的enctype必须是multipart/form-da ...
- 关于Android中设置闹钟的相对比较完善的解决方案
我当时说承诺为大家写一个,一直没空,直到最近又有人跟我要,我决定抽时间写一个吧.确实设置闹钟是一个比较麻烦的东西.我在这里写的这个demo抽出来了封装了一个类库,大家直接调用其中的设置闹钟和取消闹钟的 ...
- Centos配置java环境
安装jdk JDK 是开发Java程序必须安装的软件,我们查看一下 yum 源里面的 JDK:yum list java* 选择适合本机的JDK,并安装:yum install java-1.7.0- ...
- EJBCA在Linux上的安装
在windows上安装为了測试用,装在linux服务器上的由于CN用的ip须要重装.....又是折腾一番,以下介绍一些须要注意的地方 一.所需文件 准备的内容就不说了,參考我的上上篇<EJBCA ...
- [LeetCode][Java] Letter Combinations of a Phone Number
题目: Given a digit string, return all possible letter combinations that the number could represent. A ...
- link和@import引入外部样式的区别
原文: 简书原文:https://www.jianshu.com/p/14f99062f29a 大纲 前言 1.隶属上的差别 2.加载顺序的不同 3.兼容性上的差别 4.使用DOM控制样式时的差别 5 ...
- mycat 离散分片 -> 程序指定分区的分片
1.程序指定分区的分片 此规则是在运行阶段有应用自主决定路由到那个分片. 此方法为直接依据字符子串(必须是数字)计算分区号(由应用传递參数.显式指定分区号). 2,加入配置文件 在function.x ...
- IAdjustCountOption--动态设置recycleView的itemCount(不须要改动数据源)
概述 RecycleViewUtil是新增的一个主要针对RecycleView的一个工具类.该工具类中提供了部分RecycleView可能会使用到的方法,当中也包含了一些用来增强HeaderRecyc ...
- 适合前端开发的 Chrome 扩展有哪些?(十款)
适合前端开发的 Chrome 扩展有哪些?(十款) 一.总结 好的插件或者框架对程序员的意义重大. 二.适合前端开发的 Chrome 扩展有哪些?(十款) 掘金是一个高质量的技术社区,从 ECMASc ...