阐述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(五岁以下儿童)
注意事项和使用功能

时间: 2024-10-10 03:27:34

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

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

python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签",东西都是一样的.改变或者添加,复制出来的变量也会改变 样例: >>> a=[1,2,3] >>> b=a >>> a [1, 2, 3] >>> b [1, 2, 3] >>> a[1]=0 >>>

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

PE文件结构(五岁以下儿童) 參考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 基址重定位 链接器生成一个PE文件时,它会如果程序被装入时使用的默认ImageBase基地址(VC默认exe基地址00400000h.dll基地址10000000h),而且会把代码中全部指令中用到的地址都使用默认的基地址(比如 程序代码中 push 10001000,就是把10000000h当做了基地址,把push 10001000写入到文件里).如果一个exe程序中一个dll装载时的地址与其他dll地址发生

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

[版权声明:尊重原创.转载请保留源:blog.csdn.net/shallnet 要么 .../gentleliu,文章学习交流,不用于商业用途] system V共享内存和posix共享内存类似,system V共享内存是调用shmget函数和shamat函数. shmget函数创建共享内存区,或者訪问一个存在的内存区,类似系统调用共享内存的open和posix共享内存shm_open函数. shmget函数原型为: #include <sys/ipc.h> #include <sys

设计与实现的简单和经常使用的权限系统(五岁以下儿童):不维护节点的深度level,手工计算level,树形结构

以这种方式.和第三的类似介绍.所不同的是.深度未在数据库中存储节点level,添加和更改时间,护.而是,在程序中,实时去计算的. 至于后面的,依照level升序排序,再迭代全部的节点构造树,与第三篇中的方法,全然一样.因此,本篇和下一篇,仅仅介绍怎样计算level.不再介绍后面的详细实现了. 计算level,採用递归方式. // 计算全部节点的level public static List<Map<String, Object>> caculateLevel( List<M

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

四.建立主机之间的信任关系(node1.node2) 建立节点之间oracle .grid 用户之间的信任(通过ssh 建立公钥和私钥) 分别在node1和node2创建 =====Oracle用户========================= 在oracle用户下操作: [[email protected] /]# su - oracle [[email protected] ~]$ mkdir .ssh       创建一个.ssh的隐藏文件夹 [[email protected] ~]

《世界如此险恶,你想要一个强大的心脏》读书笔记(五岁以下儿童)

(1)男人 VS 女人 男人通过利益的获取来证明自己的高档,而女人恰恰是通过和女人,特别是熟悉或是同类 的女人的对照. 因此,注定会有一些女人,她们的存在本身.就会得罪还有一些女人. 两个陌生男人之间所存在的敌意.远大于两个陌生女人之间. 秘密是:相互陌生的男人之间有着潜在的暴力上的威胁,而相互陌生的女人之间没有. 可是,假设彼此熟悉,甚至是同事,那么,两个女人之间所存在的敌意.就远大于两个男人之间. 秘密是:相互熟悉的男人之间.仅仅有在利益上才构成威胁.而女人之间.一个人的存在本身 就是对还有

Servlet(五岁以下儿童)web.xml一些常用的配置

(1)lode-on-startup,这Servlet该项目启动时它将被称为(从主要的电话init办法,为了安全起见,一般不应为Servlet建立URL制图).一些数据通常被用作前处理,或使用多线程建立经常性的任务 <servlet><pre name="code" class="html"><span style="font-family:Arial, Helvetica, sans-serif;"> <

bluetooth发展(五岁以下儿童)------蓝牙功能测试(一个)

newton板已出版.下面再组织我调试的一小方面,,蓝牙功能的实现和测试: 转载请注明出处:http://blog.csdn.net/wang_zheng_kai 以下是我写的newton开发板中bluetooth阅读文档README的一部分. 3.2. Bluetooth Function Test 141 142 1)View the Bluetooth MAC address and device names:hcitool dev 143 144 eg: 145 146 [[email 

Android Bluetooth Stack: Bluedroid(五岁以下儿童):The analysis of A2DP Source

1. A2DP Introduction The Advanced Audio Distribution Profile (A2DP) defines the protocols and procedures that realize distribution of audio content of high-quality in mono or stereo on ACL channels. As indicated in the diagram of 'Protocol Model', A2