现在说函数,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 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会照样打印
而
<?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和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

PHP不是在消亡,而是在不断适应和进化。1)PHP从1994年起经历多次版本迭代,适应新技术趋势。2)目前广泛应用于电子商务、内容管理系统等领域。3)PHP8引入JIT编译器等功能,提升性能和现代化。4)使用OPcache和遵循PSR-12标准可优化性能和代码质量。

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。

在PHP中,trait适用于需要方法复用但不适合使用继承的情况。1)trait允许在类中复用方法,避免多重继承复杂性。2)使用trait时需注意方法冲突,可通过insteadof和as关键字解决。3)应避免过度使用trait,保持其单一职责,以优化性能和提高代码可维护性。

依赖注入容器(DIC)是一种管理和提供对象依赖关系的工具,用于PHP项目中。DIC的主要好处包括:1.解耦,使组件独立,代码易维护和测试;2.灵活性,易替换或修改依赖关系;3.可测试性,方便注入mock对象进行单元测试。

SplFixedArray在PHP中是一种固定大小的数组,适用于需要高性能和低内存使用量的场景。1)它在创建时需指定大小,避免动态调整带来的开销。2)基于C语言数组,直接操作内存,访问速度快。3)适合大规模数据处理和内存敏感环境,但需谨慎使用,因其大小固定。

PHP通过$\_FILES变量处理文件上传,确保安全性的方法包括:1.检查上传错误,2.验证文件类型和大小,3.防止文件覆盖,4.移动文件到永久存储位置。

JavaScript中处理空值可以使用NullCoalescingOperator(??)和NullCoalescingAssignmentOperator(??=)。1.??返回第一个非null或非undefined的操作数。2.??=将变量赋值为右操作数的值,但前提是该变量为null或undefined。这些操作符简化了代码逻辑,提高了可读性和性能。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

WebStorm Mac版
好用的JavaScript开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)