php函数变量的作用域及函数返回值教程

 更新时间:2016年11月25日 16:50  点击:1857
在php中关于在一个函数中定义的变量,包括参数在内都不能访问函数外部变量,并且在默认的情况下,在一个函数外部定义的变量不能访问的函数变量。

下面看实例

 代码如下 复制代码
<?php
$a = 1;
$b = 2;
function Sum()
{
    global $a, $b;
    $b = $a + $b;
}
Sum();
echo $b;
?>

这样返回$b的值为3,在php中global是一个全局变量所有才会这样,那么我们现来看php变量引用实例

 代码如下 复制代码
<?php
function str_unite (&$string)
{
    $string .= '也喜欢蓝色.';
}
$str = '喜欢红色,';
str_unite ($str);
echo $str;    // 输出结果: '喜欢红色,也喜欢蓝色.'
?> 

,上面讲的是函数的作用域的全局变量与函数的引用,下面来看个函数的局部变量

 代码如下 复制代码

<?php
$a = 1;
$b = 2;
function Sum($a,$b)
{
     $b = $a + $b;

     echo $b;//3
}
Sum();//
echo $b;//2
?>

本站原创教程转载注明来源www.111cn.net/phper/php.html

//preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) 主题为匹配搜索模式,替换替换
/*
要搜索的模式。它可以是一个字符串或一个字符串数组。

电子修饰符使preg_replace函数()替代治疗后,适当引用作为参数是php教程代码进行替换。提示:请确保置换构成一个有效的php代码字符串,否则php将抱怨在包含preg_replace函数线()解析错误。

返回值

preg_replace函数()返回一个数组,如果这个问题的参数是一个数组或一个字符串,否则。

如果找到匹配,新问题会产生,否则将返回主题不变或null如果发生错误。
*/

//实例一

 代码如下 复制代码
$string = 'april 15, 2003';
$pattern = '/(w+) (d+), (d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);

//实例二

 代码如下 复制代码
$string = 'the quick brown fox jumped over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';
echo preg_replace($patterns, $replacements, $string);

//通过ksorting模式和替代,我们应该得到我们想要的。

 代码如下 复制代码
ksort($patterns);
ksort($replacements);
echo preg_replace($patterns, $replacements, $string);

//更换几个值

 代码如下 复制代码
$patterns = array ('/(19|20)(d{2})-(d{1,2})-(d{1,2})/',
                   '/^s*{(w+)}s*=/');
$replace = array ('//', '$ =');
echo preg_replace($patterns, $replace, '{startdate} = 1999-5-27');

//过滤所有html 标签

 代码如下 复制代码
preg_replace("/(</?)(w+)([^>]*>)/e",
             "'\1'.strtoupper('\2').'\3'",
             $html_body);

//过滤所有script代码

 代码如下 复制代码

$user_agent = "mozilla/4.0 (compatible; msie 5.01; windows nt 5.0)";

$ch = curl_init();    // initialize curl handle
curl_setopt($ch, curlopt_url, $url); // set url to post to
curl_setopt($ch, curlopt_failonerror, 1);              // fail on errors
curl_setopt($ch, curlopt_followlocation, 1);    // allow redirects
curl_setopt($ch, curlopt_returntransfer,1); // return into a variable
curl_setopt($ch, curlopt_port, 80);            //set the port number
curl_setopt($ch, curlopt_timeout, 15); // times out after 15s

curl_setopt($ch, curlopt_useragent, $user_agent);

$document = curl_exec($ch);

$search = array('@<script[^>]*?>.*?</script>@si',  // strip out javascript教程 www.111cn.net
'@<style[^>]*?>.*?</style>@siu',    // strip style tags properly
'@<[/!]*?[^<>]*?>@si',            // strip out html tags
'@<![ss]*?–[ ]*>@',         // strip multi-line comments including cdata
'/s{2,}/',

);

$text = preg_replace($search, " ", html_entity_decode($document));

$pat[0] = "/^s+/";
$pat[2] = "/s+$/";
$rep[0] = "";
$rep[2] = " ";

$text = preg_replace($pat, $rep, trim($text));

return $text;
}

/*
此函数接受一个url并返回页面的纯文本版本。它使用curl来检索网页,一个正则表达式的组合,以去除所有不必要的空白。这个功能甚至剥夺了从形式和script标记,这是由php函数忽略,如用strip_tags(他们地带唯一的标记文本,留下完整的文字在中间)。

正则表达式被分为两个阶段,以避免删除单(也由 s的匹配)回车,但仍然删除所有空白行和多个换行符或空格,修整手术进行了2个阶段进行。
*/
?>

本教程要介绍关于函数的调用与函数定义语法,并接讲关于函数中的变量以及向函数传递数值方法。

 

一、函数的基础

php教程提供了大量的函数,并且允许用户自定函数,

php函数定义实例

 代码如下 复制代码
<?php
function myCount($inValue1,$inValue2)
{
  $AddValue = $inValue1+$inValue2;
  return $AddValue;     //返回计算结果
}
$Count = myCount(59,100);
echo $Count;     //输出159
?>

函数一但被定义就可以在任何地方使用。

二、函数传参数

php 函数参数在函数定义时进行申明定义,函数可以有任意多个参数,应用最普遍的传递方法,是按值传递交的。或通过引用和默认参数值应用得相对比较少。

实例

 代码如下 复制代码
<?php
function myColor ($inColor = "蓝色")
{
    return "我喜欢的颜色: $inColor. ";
}
echo myColor();
echo myColor("粉色");
?> 

一般传递的值不会因函数内部改变而改变的。除非是全局变量或是引用我们来看php函数引用实例

 代码如下 复制代码
<?php
function str_unite (&$string)
{
    $string .= '也喜欢蓝色.';
}
$str = '喜欢红色,';
str_unite ($str);
echo $str;    // 输出结果: '喜欢红色,也喜欢蓝色.'
?> 

 

全局变量

 代码如下 复制代码
<?php
$a = 1;
$b = 2;
function Sum()
{
    global $a, $b;
    $b = $a + $b;
}
Sum();
echo $b;
?>

 

其它很多时间我们不会用于php ftp函数文件上传哦,但有在使用比较高级的WEB应用时就会用到关于ftp功能,如我现在要把上传的图片传B服务器,数据保存到A服务器,普通的php文件上传实例不了,但用ftp功能就可以方便的实例了。
 代码如下 复制代码

<?php
// 定义变量
$local_file = 'local.zip';
$server_file = 'server.zip';
// 连接FTP服务器
$conn_id = ftp_connect($ftp_server);
//验证登录服务器
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// 下载文件
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
    echo "下载 $local_file 文件成功 ";
} else {
    echo "下载失败 ";
}
// 关闭ftp连接
ftp_close($conn_id);
?> 

//搜索当前目录所有文件

 代码如下 复制代码
$array = glob('*.*');
print_r($array );

/*
Array
(
    [0] => 1.php
    [1] => 10.php
    [2] => 11.php
    [3] => 2.asp教程
    [4] => 3.asp
    [5] => 4.aspx
    [6] => 5.html
    [7] => 6.php
    [8] => 7.php
    [9] => 8.php
    [10] => 9.php
)
*/
//搜索以.php结果的php文件

 代码如下 复制代码
$array = glob('*.php');
print_r($array );

/*
Array
(
    [0] => 1.php
    [1] => 10.php
    [2] => 11.php
    [3] => 6.php
    [4] => 7.php
    [5] => 8.php
    [6] => 9.php
)
*/
//搜索包括有php,aspx 文件

 代码如下 复制代码
$files = glob('*.{php,aspx}', GLOB_BRACE);
print_r( $files );
/*


Array
(
    [0] => 1.php
    [1] => 10.php
    [2] => 11.php
    [3] => 6.php
    [4] => 7.php
    [5] => 8.php
    [6] => 9.php
    [7] => 4.aspx
)
*/
//在指定目录搜索以1开的php 文件
$files = glob('../05-15/1*.php');

print_r($files); 

/*
Array
(
    [0] => ../05-15/1.php
    [1] => ../05-15/10.php
    [2] => ../05-15/11.php
)
*/

 代码如下 复制代码
//返回文件的绝对路径
$files = array_map('realpath',$files);
print_r($files);

/*
Array
(
    [0] => D:wwwwww.111cn.net-15.php
    [1] => D:wwwwww.111cn.net-15.php
    [2] => D:wwwwww.111cn.net-15 .php
)

glob() 函数能做的事比scandir() 函数更强大,可以按照某种模式搜索文件
*/

[!--infotagslink--]

相关文章

  • Java List集合返回值去掉中括号('[ ]')的操作

    这篇文章主要介绍了Java List集合返回值去掉中括号('[ ]')的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-29
  • 在img中以双斜杠//开头的URL是有何作用?

    刚来公司上班的时候,看到以前的程序员写的程序里面调用http地址是,不是用http而是用双斜杠//开头,刚开始不知道这样写有什么好处,虽然能够正常浏览,后来在网上找了资料,才发...2016-09-20
  • Feign接口方法返回值设置方式

    这篇文章主要介绍了Feign接口方法返回值设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-08
  • 详解JavaScript的AngularJS框架中的作用域与数据绑定

    这篇文章主要介绍了JavaScript的AngularJS框架中的作用域与数据绑定,包括作用域的继承以及数据的单向和双向绑定等重要知识点,需要的朋友可以参考下...2016-03-07
  • C#中方括号[]的语法及作用介绍

    C#中方括号[]可用于数组,索引、属性,更重要的是用于外部DLL类库的引用。...2020-06-25
  • Vue中key的作用及原理详解

    本文主要介绍了Vue3中key的作用和工作原理,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-13
  • Angularjs全局变量被作用域监听的正确姿势

    这篇文章主要介绍了Angularjs全局变量被作用域监听的正确姿势的相关资料,需要的朋友可以参考下...2016-02-12
  • Postman动态获取返回值过程详解

    这篇文章主要介绍了Postman动态获取返回值过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-30
  • 深入理解javascript作用域第二篇之词法作用域和动态作用域

    这篇文章主要介绍了javascript作用域第二篇之词法作用域和动态作用域的相关资料,非常不错,具有参考借鉴价值,感兴趣的朋友可以参考下...2016-07-29
  • JavaScript作用域示例详解

    作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇文章对JavaScript作用域示例详解的介绍,非常不错,感兴趣的朋友一起看下吧...2016-07-25
  • PHP通用返回值设置

    PHP是现在很多程序比较常用的软件,一些人在写php代码时候,会遇到需要返回值的情况。这里可以统一设置下返回值格式,下面文章就给大家介绍返回值设置实例,下面一起来看看。...2017-07-06
  • Night Shift是什么意思 Night Shift有什么功能及作用?

    Night Shift是IOS9.3正式版系统新增加的功能之一,很多伙伴们都不清楚Night Shift是什么意思?以及Night Shift有什么用途?对此,本文小编就为大家详细介绍Night Shift的含义及作用...2016-07-04
  • AngularJS 作用域详解及示例代码

    本文主要介绍AngularJS 作用域的知识,这里整理了基础资料,和示例代码以及实现效果图,有需要的小伙伴可以参考下...2016-08-24
  • ps高斯模糊在哪 高斯模糊有什么作用

    ps软件是非常受大家喜欢的,有着非常不错的功能。这次文章就给大家介绍下ps高斯模糊在哪?ps高斯模糊有什么作用?感兴趣的下面一起来看看。 高斯模糊就是滤镜选项中,【...2017-07-06
  • PHP fwrite换行写入时换行符不起作用的原因

    在做一个百度404错误自动提交文件时发现里面的换行不生效了,那么在PHP fwrite换行写入时换行符不起作用时我们要如何来自呢,具体的来看看吧。 php的换行符我们都知...2016-11-25
  • 举例分析private的作用(c/c++学习)

    我知道我们可以用 public 中的值,把private中的数据给提出来,但是还是搞不懂private该怎么用,或者说在一个具体程序中,private有什么用...2020-08-20
  • PHP7扩展开发之传参与返回值

    下在我们来看一篇关于PHP7扩展开发之传参与返回值的例子,希望这一篇文章能够帮助到各位朋友,具体的细节如下文介绍. 前言 这次,我们将演示如何在PHP扩展中接受传入的...2016-11-25
  • 详解C语言函数返回值解析

    这篇文章主要介绍了详解C语言函数返回值解析的相关资料,需要的朋友可以参考下...2020-04-25
  • C#打开php链接传参然后接收返回值的关键代码

    这篇文章主要介绍了C#打开php链接传参然后接收返回值的关键代码,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 详解js私有作用域中创建特权方法

    这篇文章主要为大家详细介绍了js私有作用域中创建特权方法,何为特权方法,特权方法就是有权访问私有变量和私有函数的公有方法,感兴趣的小伙伴们可以参考一下...2016-01-26