programing

PHP 함수는 대소문자를 구분합니까?

randomtip 2022. 9. 6. 21:56
반응형

PHP 함수는 대소문자를 구분합니까?

, ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★mySQL_fetch_arrayPHP php php php php php php php php php php php php php?어디선가 이 글을 읽은 기억이 나는데 참고가 안 되는 것 같다.

여기서 인용합니다.

주의: 함수 이름은 대소문자를 구분하지 않지만, 일반적으로 선언에 표시되는 함수를 호출하는 것이 좋습니다.

따라서 사용자 정의 함수는 대소문자를 구분하지 않고 PHP5에서 함수/개체를 대소문자를 구분하는 투표가 있었습니다.

아니요.

PHP 함수는 대소문자를 구분하지 않습니다.

TL;DR: 클래스 이름은 대소문자를 구분하지 않지만 선언에서와 항상 같은 대소문자를 사용합니다(함수와 동일).또한 정의된 대로 대소문자가 다른 클래스를 인스턴스화하면 오토로더에 문제가 발생할 수 있습니다.


또한 클래스 이름은 대소문자를 구분하지 않습니다.

<?php
class SomeThing {
  public $x = 'foo';
}

$a = new SomeThing();
$b = new something();
$c = new sOmEtHING();
var_dump($a, $b, $c);

출력은 다음과 같습니다.

class SomeThing#1 (1) {
  public $x =>
  string(3) "foo"
}
class SomeThing#2 (1) {
  public $x =>
  string(3) "foo"
}
class SomeThing#3 (1) {
  public $x =>
  string(3) "foo"
}

는 자동 및 를 구분하는 등)을이 대소문자를 캐싱하는 이 아님), 를 해야 합니다(ext2/3/4).strtolower:

클래스 파일:

<?php
// filename something.php
class SomeThing {
   ...
}

기능오토로더 기능)__autoload spl_autoload_register)

function my_autloader($className) {
  $filename = CLASSES_DIR . DIRECTORY_SEPARATOR . $className . '.php';
  if (file_exists($filename)) {
    require($filename);
  }
}

이 코드와 함께:

$a = new something(); // works
$b = new SomeThing(); // does not work
$c = new SOMETHING(); // does not work

에 로더를 하지 않는 하게 사용) 할 수 .strtolower() 함수와 해, 것, 로더를 하는 것, 및 「Autoloader」, 「Autoloader」를 사용하는 을 잊는 .strtolower아, 아, 아, 아, 아, 아, 아, 아, 아.

아니요. 대소문자를 구분하지 않지만 일관성을 위해 항상 설명서에 나와 있는 대소문자를 사용해야 합니다.

단, 변수는 대소문자를 구분합니다.

메서드 이름에서도 대소문자를 구분하지 않습니다.예:-

<?php
       class C { 

           public function method() { } 

           public function METHOD() { } 
       }

출력:

PHP Fatal error:  Cannot redeclare C::METHOD() in ....php on line 6

PHP 변수에서는 대소문자가 구분되지만 함수는 이와 같은 문제가 없습니다.출력을 표시하기 위해 다음 문을 사용할 수 있습니다. 모두 동일한 결과를 표시합니다.

<?php
Echo "This is a test script";
ECHO "This is a test script";
echo "This is a test script";
?>

반면 변수의 대소문자를 구분하여 변경하면 오차가 표시됩니다.

예:

<?php
$a=5;
echo $A;// It will show the error.
?>

출력:

Notice: Undefined variable: A in C:\xampp\htdocs\test.php on line 3

여러분들의 반응을 종합해 보겠습니다.PHP5에서는 지금까지도 모든 인스턴스에서 대소문자의 일관성이 요구되지 않습니다.

베스트 프랙티스는

변수(필수) 또는 함수(선택 사항이지만 권장 사항)를 다시 참조할 때는 항상 동일한 대소문자를 사용합니다.

어느 날 투표가 통과되면 PHP 업데이트가 필요한 몇 년 전 어플리케이션의 케이스 변경이라는 악몽을 모두 피할 수 있을지도 모릅니다.

어쨌든 도움이 됐으면 좋겠네요.

너무 늦었을지도 모르지만...

PHP 엔진은 문자의 대소문자를 신경 쓰지 않는다는 것은 누구나 알고 있다.

그리고 PHP 버그 트래커에 대한 투표가 있는데, 대다수의 사람들은 "네, 저는 프로 케이스 센시티브입니다."라고 말합니다.

단, 저는 반대입니다.MVC 프레임워크에서는 컨트롤러 액션을 다음과 같이 부르고 있습니다.

    $currentController = new $controller($parameters);
    $currentAction = $currentController->{$action}();

$controller 및 $action은 그대로 URL에서 가져옵니다.

사용자가 내 사이트에 대한 링크를 게시한 경우: https://my-site/MyPartnerController/MyPartnerGallery

클래스의 이름이 myPartnerController인 동안...

즉, PHP의 클래스와 함수 이름이 대소문자를 구분하면 아무도 이 페이지를 얻지 못합니다.

네, 저는 항상 신고한 대로 코드에 있는 모든 이름을 사용합니다.하지만 함수와 클래스 이름은 대소문자를 구분하지 않기를 바랍니다.

감사해요!

언급URL : https://stackoverflow.com/questions/5643496/are-php-functions-case-sensitive

반응형