php学习正式起航(4)

黄舟
发布: 2016-12-28 09:15:48
原创
1266人浏览过

现在说函数,php里的函数也好简单

<?php
function a(){
echo "hello";
} 
a(); 
?>
登录后复制

function就是定义了一个函数,跟javascript一样 而且还不需要函数类型,就连形参也不需要

<?php
$a=1; 
function a($a){
echo $a;
} 
a($a); 
?>
登录后复制

输出1

<?php
$a=1; function a($a){
$a=$a+1;
echo $a;
} a($a); ?>
登录后复制

输出2

<?php
$a=1; function a($a){
$a=$a+1;
echo $a;
} a($a);
echo $a; ?>
登录后复制

最后的a其实就是开始的a 会打印1

当然函数可以有返回值的

立即学习PHP免费学习笔记(深入)”;

<?php
function a(){
return 1;
} 
echo a(); 
?>
登录后复制

打印1

另外php函数还有一点与其他编程语言不同的地方,就是可以直接给形参赋默认值

<?php
$a=2; function add($a,$b=3){
return $a+$b;
} echo add($a); 
?>
登录后复制

打印5 

这点是不是很优越
当然,你也可以给b传个其他值

<?php
$a=2; function add($a,$b=3){
return $a+$b;
} echo add($a,$b=5); 
?>
登录后复制

打印7

下面简单的说下php的引入
早在C语言就有这个概念,引入头文件
php有两个函数可以引入文件
include() 函数和 require() 函数 英语意思分别是包含和引入,意思差不多哈
两个函数功能其实是一样的,但有一点区别
include() 函数如果发生错误(比如引入文件不存在),后面在代码还会照样执行
require() 函数一旦发生错误,后面代码不再执行,也就是中断程序

下面看
新建一个php文件a.php在 根目录
代码如下

<?php
echo "hello";
?>
登录后复制

很简单

然后另一个php文件引入

<?php
include 'a.php';
echo "hello";
?>
登录后复制

会打印两个hello 

如果文件不存在

<?php
include 'a1.php';
echo "hello";
?>
登录后复制

会有警告,但第2个hello会照样打印

豆包爱学
豆包爱学

豆包旗下AI学习应用

豆包爱学 674
查看详情 豆包爱学
<?php
require 'a1.php';
echo "hello";
?>
登录后复制

会报致命错误,第2个hello不会打印

另外引入require ('a.php'); 也可以加括号,也可以不加,引号也可以双引号或单引号

另外还有 include_once()和 require_once()
功能和include,require一样,但它会在引入文件前判断一下前面是否已经引入了,如果前面已经引入,就不再引入

<?php
require ('a.php');
require ('a.php');
?>
登录后复制

打印两个hello

<?php
require ('a.php');
require_once ('a.php');
?>
登录后复制

打印一个hello

就算前面是include也一样

<?php
include ('a.php');
require_once ('a.php');
?>
登录后复制

打印一个hello

include_once()作用与上面一样

一般都用的require_once 居多,特别在大型项目中
include一般是引入html的头部和尾部的html代码,很少去引入php的代码
require就是引入类或函数了

其实如果足够自信确认不会有多引入相同文件,用require是完全没问题的,且效率还要高点,至少不需要判断,但大型项目就慎用了,因为是团队合作,别人写的代码可能引入了你要引入的文件,自己又不可能去一一检查,所以用require_once是合适的

另外在说一个小问题,引入纯php文件(没有html代码) 最好那个被引入文件不要有回闭标签 ?>

其实php代码(没有html)

<?php
echo "hello";
登录后复制

是能够执行的,你不写系统读到文档最后发现没有会默认补一个

为什么要这样呢?
因为按普遍来说

<?php
echo "hello";
?>
登录后复制

然后另一个php引入

<?php
require ('a.php');
echo "hello";
?>
登录后复制

会打印hellohello

但是如果你一不小心

<?php
echo "hello";
?> ------------光标在>后面时候你打个几个回车
---------这里有回车符号了,不过你看不到
------------回车符号
-------------
登录后复制


大多数人有这样的习惯吧

然后再引入打印

<?php
require ('a.php');
echo "hello";
?>
登录后复制

会打印
hello hello 中间会隔着一个空格

而不加?> 就不会有这种情况

所以说。。除非你确保回闭标签?>后面不有任何符号(回车,空格等)
你就可以用回闭标签
其实,现在很多项目都意识到这点。写类基本很少用回闭标签

以上就是php学习正式起航(4)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号