PHP的初步学习
首先
你好。
因为学校停课导致太闲了,所以这次想写一些关于PHP的内容。
如果可以的话,我有在Twitter上活跃,希望能关注我。
↓↓
@DevTweak
另外,虽然质量不高,但我也在做一些功能调整,如果可以的话,请注册我的存储库。
↓↓
存储库
目录
-
- PHP 是一种基本语法、用于在屏幕上输出代码、包括各种运算符、条件分支、循环、会话和
- COOKIE,还有其他各种函数等。总结起来就是这样。
PHP是什么?
基本上来说,PHP是一种用于服务器端的面向对象的编程语言,用来创建动态的Web页面。
它能做什么呢?一个代表性的例子就是论坛。通过与SQL结合,可以将数据写入或读取数据库,并在Web页面上显示。还有登录系统等等,都可以创造出来。
它的特点是可以嵌入到HTML中。但它并不像HTML那样只需要记事本和浏览器就能看到最终的Web页面。如果没有MAMP、共享服务器或家庭服务器等环境,它将无法运行。
顺便说一下,只要你有win和mac,就可以使用MAMP。所以关于如何安装和运行PHP这样的问题,请自己上网搜索。非常抱歉。
如果你想更详细了解,可以参考维基百科!
它受到C语言的影响,语法相对容易理解。适合初学者使用。
对于简单的论坛、登录表单等,即使不涉及到实例创建、函数、类等,完全可以操作。但如果涉及到大型项目,这些东西就是必需的。对个人项目来说,没有它们也没问题。
基本语法
变量
请将“变量”视为一个容器,可以存放值或字符。
在C语言或Obj-C等语言中,使用的类型取决于整数值或字符。此外,类型也会根据是否有符号而有所不同。
例如:
int a = 1;(整数值)
char b = “a”;(字符)
float c = 0.1;(浮点数)
unsigned int = 1(无符号整数值)
而在PHP中,并没有类型。这真是方便啊。
那么,关于如何创建变量,是这样的,
$number = 1;
就是这样。
如果是字符类型的话,
$string = ‘あいうえお’;
在C语言中,char类型只能存放一个字符,所以要创建一个数组,
char* string = “あいうえお” 或者 char string[] = “あいうえお”,必须这样做。这个讲述涉及到指针、数组等复杂的内容,先把这些难懂的话题放在一边不谈……
顺便提一句,最后这句话必须写上;才能算作句子完整。这里是一个式子的结束。
将代码输出到屏幕
<?php
echo 'こんにちは';
print('こんにちは');
?>
这有两种选择。
各种不同的操作符
意思: 加,减,乘,除 +,-,*,/
意思: 赋值 =
意思: 等于 ==或===
意思: 大于 >
意思: 小于 < 意思: 大于等于 >=
意思: 小于等于 <=
意思: 不等于 !=或<>
在编程语言中,实际上”=”表示的不是等于,而是表示赋值的意思。
递增和递减
递增:$i++
递减:$i–
递增的操作很简单。这就是$i = $i + 1的意思。它的含义是在变量i中加上1。递减也是一样的,$i = $i – 1的意思是在变量i中减去1。
这是一个选项:
这是对应于这个的…
$i += 5
有这样一个感觉。
这意味着将变量i的原始值加上5对吧。
很简单。
分支条件
对于已经有经验的人来说,这很容易,因为它与C语言的语法几乎没有变化。
<?php
$a = 1;
if($a == 1) {
echo 'これは1です';
}else{
echo 'これは1以外の数字です'
}
?>
如果条件表达式满足,那么执行后面的代码,这是if的意思。
如果条件表达式不符合if条件,那么执行后面的代码,这是else的意思。
当然的,输出结果会是”这是1″。
还可以这样写。
<?php
$a = 1;
?>
<?php if($a == 1): ?>
<?php echo 'これは1です'; ?>
<?php else: ?>
<?php echo 'これは一以外の数字です'; ?>
<?php endif; ?>
可以将PHP标签嵌入其中。
说实话,这种写法更好。
因为嵌入HTML标签更容易,并且可以通过CSS更容易地进行设计。
例如,
<?php $a = 1; ?>
<?php if($a == 1): ?>
<a href="https://twitter.com/DevTweak">これは1だよ</a>
<?php else: ?>
<a href="https://twitter.com">これは1じゃないよ</a>
<?php endif; ?>
可以做这样的事情。虽然可以使用最初介绍的方式来做,但非常麻烦,工作效率可能会降低,所以最好不要做。
顺便说一下,a href的意思是生成链接。具体的内容请自行搜索。
还有一种叫做”elseif”的方式,可以进一步附加条件。
<?php $a = 1; ?>
<?php if($a == 1): ?>
<p>これは一です</p>
<?php elseif($a == 2 || $a == 3): ?>
<p>これは2,または3です</p>
<?php else: ?>
<p>それ以外の数字です</p>
<?php endif; ?>
在C语言和其他语言中,通常会用”else if”来表示,但是这是不正确的。正确写法应该是”elseif”。
“||”这个符号表示”或”的意思,而”&&”则表示”且”。
你可以像下面这样使用:
($a == 1 && $a > 0),这样应该就可以了。
重复
这也是与C语言语法相同的,是吗?
<?php
for($i=1;$i<=100;$i++) {
echo $i.'回目'.'\n';
}
?>
这意味着从1到100进行循环。在这种情况下的输出结果为:
第1次
第2次
第3次
第4次
第5次
第6次
第7次
第8次…
这是指将前一句和后一句连接起来的意思。
\n代表换行。
顺便说一句,如果是win系统,会显示为¥符号。
而对于mac系统,只需同时按下option和delete键旁边的键即可输出。
同样地,即使是在…时也能做一样的事情。
<?php
$i = 1;
while($i <= 100){
echo $i.'回目'.'\n';
$i++;
?>
就是这种感觉。
会话和Cookie
会议
会话(session)是一种特殊的变量,可以在打开浏览器期间一直记住其值,请记住这一点。
可以将其想象为全局变量的一种感觉。
那么,让我们先看一下代码吧。
<?php
session_start();
$_SESSION['test'] = 'テスト';
?>
<?php echo $_SESSION['test']; ?>
出力结果会显示为“测试”。
session_start();
从函数的名字就可以知道,简单地说它是用来启动会话的一个函数。
在使用会话的页面中,我们首先要写入这个函数。
这样即使在页面跳转之后,只要在目标页面上写上session_start(),
并且输入echo $_SESSION[‘test’];,
应该就会显示为“测试”。
当你不再需要这个session时,可以使用unset函数来删除其内容。
unset($_SESSION[‘test’]);
就是这样的。
饼干
在指定的时间段内,即使关闭浏览器,Cookie的值也会被保存。它的便利性与安全风险并存。由于可以通过简单操作查看Cookie的内容,因此尽量不要保存重要信息。
用法
<?php setcookie('test','テスト',time() + 60 * 60 * 24 * 30); ?>
<?php echo $_COOKIE['test']; ?>
输出结果将是一个测试。
将变量名作为第一个参数,将要存储的值作为第二个参数,将要存储的期间作为第三个参数。
可以使用time()函数获取当前时间戳,并将其乘以60 * 60 * 24来表示一天,然后乘以30表示三十天。
其他各种各样的函数 de
获取输入到表单中的内容
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title></title>
</head>
<body>
<form action="index.php" method="post">
名前:
<input type="text" name="name">
<input type="submit" value="送信">
</form>
</body>
</html>
<?php echo '名前は'; ?>
<?php print(htmlspecialchars($_POST['name'],ENT_QUOTES)); ?>
由于需要一定的HTML知识,所以请在这方面多多关照。
填写的内容将通过action属性指定的文件进行提交。
本次我们通过form元素的method属性指定为post,
将会通过名为$_POST的全局变量进行接收。
除了post,还有一个名为get的属性,稍后会进行说明。
input元素的name属性指定的名称将会被用作
$ _POST [”] -> $_POST [”]
在这对单引号中间输入内容。
这次写的是name,
将会是$_POST[‘name’]。
如果将method设置为get,
可以使用$_GET[”]或$_REQUEST[”]接收。
最大的区别在于能否在URL中看到发送的内容。
如果将先前的方法改为get方法,
URL中将写入如下内容:
https://xxxx.com?name=XXX
(?name=XXX是添加进去的)
并且可以自由地更改XXX的值。
因此,在处理重要数据时,务必使用post方法。
打印(htmlspecialchars($_POST[‘name’],ENT_QUOTES))
許多人對這是什麼感到好奇。
這是一個安全措施的語句。有些有惡意的用戶可能會破壞網站或者造成麻煩。
通過添加這個語句,可以防止以下情況發生。
刪除這個htmlspecialchars函數, →打印($_POST[‘name’]);
讓我們試著在表單中輸入以下內容。
然後點擊發送,將會彈出警告窗口。
如果这段代码变得复杂,那么可能会有很多事情发生。
为了防止这种情况,请务必输入这个函数。
在使用这个函数的情况下,输入可以抵消标签的效果。
我也想解释ENT_QUOTES的含义,但会变得很长,所以请记住它。
总结
结构浓厚的内容,您觉得如何呢?相比C语言来说,这是更简单的方面。如果引入了面向对象、函数或者SQL语句执行等内容,会变得非常困难。
我认为通过实践而不仅仅是阅读,您可以掌握这些知识,请务必尝试编写代码。
接下来,我计划写一些关于实际应用的内容,如果您觉得好,请关注和点赞。
以上。