検索
ホームページバックエンド開発PHPの問題php構文とcの違いは何ですか

構文の違い: 1. PHP では定数の定義に定義関数を使用しますが、C 言語では使用しません; 2. PHP ではすべての変数名の前に「$」を付ける必要がありますが、これは C 言語では使用されません; 3. PHP は定数を考慮しません どちらの変数も使用前に定義する必要はありません (クラス内の変数を除く)。

php構文とcの違いは何ですか

#このチュートリアルの動作環境: Windows7 システム、PHP7.1&&c99 バージョン、DELL G3 コンピューター

構文、 php C 言語との違いは、定義関数によって実装されます。PHP の関数は非常に強力です。配列の定義も関数によって完了することが後でわかります。PHP の非常に豊富な関数ライブラリには本当に感謝しなければなりません。 PHP は使いやすく強力です。 define 関数プロトタイプ: bool define(string name, value, [, bool case_insensitive])

3 番目のパラメータが TRUE の場合、定数名がサイズ 書き込みは区別されません。それ以外の場合は区別されます。デフォルトは区別されます。慣例に従い、定数名では大文字と小文字を区別しましょう。

例:

<?php
  define(“C1”,”Hello PHP World!”);
  echo C1;
?>

上記のコードの実行結果は、定数 C1 (Hello PHP World!) の値を出力します。

ちなみに、

?>

は PHP コードの区切り文字であり、PHP コードと HTML コードを区別します。セミコロンを使用します。これは私たちが慣れ親しんでいるものです。さらに、PHP のコメント記号は C のコメント記号と同じです。ご存知のはずですが、詳細は説明しません... このエコーは C の printf またはC の cout ですが、厳密には出力は整形されていないと言われています。整形するのはとても簡単です。HTML コードを書くだけです。たとえば、出力の後に改行したい場合は、次のように書きます。

define("C1","Hello PHP World !
");

わかりました。 PHP は改行文字として「\n」もサポートしていますが、その意味は HTML で Enter キーを押すことと同じであり、ブラウザでは依然として 1 行であることに注意してください。

変数定義する必要がないことに加えて、C 言語ユーザーにとって最も慣れないことは、すべての変数名の前に $ を付ける必要があることです。 PHP デザイナーもそうだと文句を言う あなたはお金に依存しているのに、文句を言った後もこう書かなければなりません PHP プログラムを書くとき、Shift キーの使用頻度が急増しました。私はこれを行う利点を突然発見しました: 定数には $ がないので、定数と変数の区別が明確になります。さらに重要なのは、カスタム変数名が PHP キーワードと競合することを心配する必要がなくなりました。変数を次のように定義できます。 $if、$for など (もちろん、これは正式な状況では行わない方が良いです。ただ楽しむだけです)。 C と同じように、PHP 変数名では大文字と小文字が区別され、命名方法は C 識別子の命名規則に従います。

C 言語と参照の概念をある程度知っている場合は、次の段落をスキップできます。PHP も参照をサポートしていることを覚えておいてください。それ以外の場合は、時間をかけて次の段落を読むか、C 参照の概念を見てください。

<?php
$var1=100;
$var2=&$var1;
$var2=200;
echo $var1.”<br>”;
echo $var2;
?>
このコードの結果は、$var1 と $var2 の値である 200 を 2 つ出力します。出力するとき、明確にするために改行文字が追加されます。ピリオド (.) PHP は文字列ジョイナーです。

$var2 には 200 だけが割り当てられ、$var1 も 200 になるのはなぜですか? $var1 の値のみを変更してみることもできます。これら 2 つの変数が結び付けられているように見えることがわかります。実際、ステートメント $var2=&$var1; のアンパサンドの意味は、変数名 $var2 が $var1 が配置されている記憶域を指すことです。つまり、$var2 は新しい変数ではありませんが、 $var1 の別名。これらは同じメモリ空間に対応し、誰が使用しても同じ変数にアクセスします。$var2 は $var1 への参照と呼ばれます。引用するメリットは何ですか?それについては後で話してください。 C言語は、基本的な概念(変数名、変数アドレス、変数の値)が明確であれば、理解するのに困難はありませんが、基本的な概念が不明瞭な場合は、まず「過去の復習」をしてから「学習」するのがよいでしょう。新しい"。

ところで、興味深いことに、上記の echo ステートメントを

echo “The value of $var1 is ”.$var1.”<br>”;

として記述すると、得られる出力は次のようになります:

The value of 200 is 200

覚えていますか? C言語を初めて学習したとき、変数名を文字列に入れてその値を出力しようとして、得られたのは変数名だったという間違いを犯したと思いますが、今はあなたの「理想」が実現していますが、慣れてないです(笑)。 PHP が文字列の区切り文字として二重引用符を使用すると、変数名が対応する値に自動的に置き換えられることがわかりました。このアプローチにより、変数を含む文字列を出力するのが非常に便利になります。二重引用符のペアだけで、次のことが可能になります。 。出力された変数名をそのまま保持したい場合は、文字列の区切り文字として一重引用符を使用できます (もちろん、他の方法もあります。PHP 文字列を注意深く調べることができます)。 C の厳しい要件には今でも感謝しなければなりませんが、もし C が PHP のようなものだったとしたら、変数名と変数値の概念をまだ理解できないかもしれません。

変数の範囲

PHP的变量作用域与C很类似,在此不准备多说。局部变量在所存在的函数内部有效,全局变量作用域是文件作用域(限于单个PHP文件),若局部变量同全局变量重名,同C的处理方式,全局的被屏蔽。稍微麻烦一点的是,要想在函数内访问全局变量,需使用global关键字声明,否则的话PHP就认为是一个与全局变量同名的局部变量。 

<?php
$a=1;
function func()
{
   echo "The value of a is:".$a;
}
func();
?>

以上代码没有输出1,为什么呢?PHP把函数里的$a看作是一个全新的局部变量,此$a非彼$a(函数体外的全局变量),此$a未赋值,因此输出为空。如果我们要想在函数体内部访问全局变量$a的值,须在访问之前声明一句:global $a; 这样PHP就知道要访问的是全局变量$a了。

还有一种方法是利用PHP的系统数组$GLOBALS,该数组是PHP系统自动生成和维护的,它记录了所有全局变量。echo $GLOBALS[“a”]; 即可输出其中$a的值。

PHP的静态变量仅在局部函数域中存在,同C是完全相同的。

PHP有一种特殊的动态变量,名字听起来很容易让人认为就是C语言的普通变量(动态的、局部的),但这个动态的含义有点特殊,它是指变量名可以动态赋予!也就是说,可以让应用程序的最终用户为变量指定名字! 

<?php
$a="newname";
a="content";//newname本是$a的值,但是a的含义是以$a的值为名的变量
echo $newname; //$$a等价于 $newname
echo $a;
?>

运算符和表达式

PHP在运算符和表达式方面和C极其类似,有算术、逻辑、关系、位运算符及相应的表达式,也有条件运算符(:?)及其表达式,同样还是我们开始提到的那个思想,实用为上,很多限制被取消了,相对较宽松。举个例子: 

<?php
$a="1";
$b=1;
if ($a==$b) echo "Equal!";
else echo "Not Euqal!";
?>

按照C的思维方式来看,$a是字符,$b是整型,两者比较是字符的ASCII码值与整数比较,显然不等,而PHP运行结果却是“Equal!”,看到这里,是不是有点冲破封建大家庭的礼教与心上人私奔的感觉?呵呵,抑或是惊呼PHP无法无天?接下来还有让你目瞪口呆的,若$a="1e3"; $b=1000; 依然是“Equal!”,也就是说PHP在比较时能自动将字符串“按照人的理解方式”进行转换,1e3不就是科学计数法表示的1000吗?甚至$a=”1e3HelloWorld”;都会相等,PHP将字符串转换为数值时会自动截取全部它能理解为数值的部分!其实C也允许跨越数据类型的比较,比如字符型和整型比较,C也会自动转换类型,但它是“按照计算机的思维方式”转换的,因为字符在计算机里就是按照ASCII码存储的。

PHP的“人性化”也带来了麻烦,当我们想严格比较两个变量的时候怎么办呢?于是PHP提供了一对特殊的运算符:全等(===)和非全等(!==),只有当值相当且数据类型相同时,才叫全等,两者有一不符,则非全等。此时,即使1与1.0也是非全等的,原因你一定知道吧。如果你觉得只有这样才踏实,那么恭喜你,你已经被C洗脑了。

运算符有优先级和结合性的概念,这方面和C是类似的,你也许记不清所有的优先级关系,但是没关系,我们有括号呢。

PHP的数据类型

PHP与C的一个显著不同是:不管常量还是变量都不需要先定义后使用(类中的变量除外),PHP根据第一次赋值的情况自动决定数据类型。想想当年学习C语言的时候,我们曾感到先定义后使用很麻烦(但是“长大后”(我是指学会C后)都体会到了它的好处),常常忘记定义,而现在少了这条规矩,反而有点不适应了。

PHP的基本变量类型有整型(Integer)、浮点型(Float)、字符串(String)(这是C没有的,但C++有String类)以及布尔型(Boolean)(C没有,但是C++有)。构造类型有数组和对象。此外还有两个特殊类型:空值(NULL)(C也有)和资源(Resource)。

推荐学习:《PHP视频教程

以上がphp構文とcの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません