PHP中嵌套函数被调用时出现报错的问题
对于初入门的PHP新手来说,在学习关于PHP函数嵌套的知识点时可能会有一定的难度。比如有的朋友在练习PHP函数嵌套相关问题时,会遇到调用内部函数时就会出现报错的情况等。
那么本篇文章就为大家详细得分析介绍关于PHP中特殊函数嵌套函数的处理问题。 下面我们通过具体的代码示例,给大家进行详解。 首先我们创建一段PHP嵌套函数代码示例如下: <?php
function functionName1()
{
function functionName2(){
echo "我是一个被嵌套的函数";
}
echo "我是一个函数";
} functionName2(); 此段代码我们通过浏览器访问测试的结果如下图:
如图出现了functionName2函数未被定义的报错,这种情况怎么处理呢? 下面我们在上述代码的基础上,再调用functionName1这个函数,代码如下:
<?php
function functionName1()
{
function functionName2(){
echo "我是一个被嵌套的函数";
}
echo "我是一个函数";
}
functionName1();
functionName2();
我们再通过浏览器测试,结果就如下图:
此时内部函数functionName2就能被成功调用了。 那么如果我们在一个页面多次调用外部函数,又会有什么情况呢? 下面我们再在上述的代码基础上,调用两次functionName1函数,代码如下:
<?php
function functionName1()
{
function functionName2(){
echo "我是一个被嵌套的函数";
}
echo "我是一个函数";
}
functionName1();
functionName1();
echo "<br>";
functionName2();
通过浏览器访问测试结果如下:
如图出现了不能重新定义functionName2函数的报错,怎么解决避免这样的错误呢? 这里我们就需要用到if判断语句,那么完整的代码示例如下:
<?php
// 当外部的函数没有被调用时,内部的函数相当于不存在
function functionName1()
{
if (!function_exists('functionName2')){
function functionName2(){
echo "我是一个被嵌套的函数";
}
}
echo "我是一个函数";
}
functionName1();
functionName1();
echo "<br>";
functionName2();
最后我们再通过浏览器访问的测试结果如下图:
综上所述,我们可以得出一些重要结论: 1、当外部函数没有被调用时,内部的函数就相当于不存在,否则直接调用就会出现上述中函数未定义的错误。 2、当调用多次外部函数时,就需要用一个判断语句来声明嵌套函数,否则就会出现不能重新被定义的错误。 注:function_exists() 可以判断指定函数是否被定义。
PHP中嵌套函数被调用时出现报错的问题的更多相关文章
- ThinkPHP 中入口文件中的APP_DEBUG为TRUE时不报错,改为FALSE时报错
今天好不容易将一个新闻网做好了(ThinkPHP框架做的),但是,当我将入口文件中定义调试模式设为FALSE,即define('APP_DEBUG',False),然后再刷新网站的时候,就提示报错,报 ...
- 在IDEA中使用JDBC获取数据库连接时的报错及解决办法
在IDEA中使用JDBC获取数据库连接时,有时会报错Sat Dec 19 19:32:18 CST 2020 WARN: Establishing SSL connection without ser ...
- 使用PHP + Apache访问有错误的php脚本时不报错
遇到一个问题: 在命令行编辑php脚本后,直接使用php命令行执行该php脚本,如果脚本出现错误,在命令行的情况下会报错,显示错误信息,比如下面的情况. [root@localhost wwwroot ...
- php中读取中文文件夹及文件报错
php读取时出现中文乱码 一般php输出中出现中文乱码我们可用 header ('content:text/html;charset="utf-8"'); php中读取中文文件夹及 ...
- javascript的倒计时功能中newData().getTime()在iOS下会报错问题解决
javascript的倒计时功能中newData().getTime()在iOS下会报错问题解决 在做移动端时间转化为时间戳时,遇到了一个问题,安卓手机上访问时,能拿到时间戳,从而正确转换时间,而在i ...
- asp.net使用wsdl文件调用接口,以及调用SSL接口报错“根据验证过程 远程证书无效”的处理
1.调用wsdl接口,首先需要将wsdl文件转换为cs文件: 进入VS 开发人员命令提示行,输入如下命令: c:/Program Files/Microsoft Visual Studio 8/VC& ...
- 【PostgreSQL】PostgreSQL添加新服务器连接时,报错“Server doesn't listen ”,已解决。
PostgreSQL添加新的服务器连接时,报错:
- saltstack配置安装的一些关键步骤及安装时各种报错的分析
以下其他仅做参考,官方网址才是安装重点:http://docs.saltstack.cn/topics/installation/rhel.html 与安装相关的一些文档或资料: 一.linux服务器 ...
- vue使用v-for时vscode报错 Elements in iteration expect to have 'v-bind:key' directives
vue使用v-for时vscode报错 Elements in iteration expect to have 'v-bind:key' directives Vue 2.2.0+的版本里,当在组件 ...
随机推荐
- CodeForces - 893D 贪心
http://codeforces.com/problemset/problem/893/D 题意 Recenlty Luba有一张信用卡可用,一开始金额为0,每天早上可以去充任意数量的钱.到了晚上, ...
- mysql 8.0.12 创建新的数据库、用户并授权
Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码: [root@host]# mysqladmin -u root password "new_p ...
- PHP7 学习笔记(十)会话控制
防守打法 1.设置Cookie,[基于内存的Cookie] setcookie('Username','tinywan'); setcookie('Age','24'); 2.查看Cookie存储位置 ...
- android allowbackup
allowbackup 属性是在application 节点下,作用的设置为true,人们可以通过adb 命令备份一份应用的信息,然后在另外一个设备上,还原这份信息,是一种危险操作,所以,我们一般设为 ...
- web.py 模板错误记录
错误信息 Traceback (most recent call last): File , in process return self.handle() File , in handle retu ...
- 字典(Dictionary)
字典(Dictionary) 字典是一种可变的容器模型,由键值对组成,键和值用冒号分隔,用花括号括起来: d = {key1 : value1, key2 : value} 字典的值可以是任何类型的数 ...
- 使用Eclipse Memory Analyzer 进行JAVA内存泄露分析
一,安装 Eclipse Memory Analyzer 在Memory Analyzer的官网找到 update site的地址:
- 字符串数字转换成对应的Double数值
一,介绍 前面实现了字符串转换成整形数值.参考这里: 它不支持小数,不支持符号(正.负号) 现在实现一个更复杂一点字符串转换成数值的程序. 它支持“浮点字符串”转换成对应的浮点数值,如: " ...
- ECSHOP /mobile/admin/edit_languages.php
漏洞名称:ecshop代码注入漏洞 补丁编号:10017531 补丁文件:/mobile/admin/edit_languages.php 补丁来源:云盾自研 更新时间:2017-01-05 08:4 ...
- C# 与 SQL Server 的数据类型对应关系
(一)C#与SQL Server 2005(或以下版本): C# C#取值 SQL Server SQL Server取值 System.DateTime samlltime System.Objec ...