PHP 타입 캐스팅 팝 퀴즈 시간! (전체 공개 : 저는 사무실에서 이기지 못했습니다).
이미 지적했듯이, 이것은 l()
우리가 우려 하는 코드 입니다.
if (isset($options['fragment']) && $options['fragment'] !== '') {
$options['fragment'] = '#' . $options['fragment'];
}
질문은 다음과 같습니다. 어떤 값이 빈 문자열로 변환되지만 다음을 통과합니까?
(isset($var) && $var !== '')
대답은 : FALSE
!
그래서 우리는 이것을 시도 할 수 있습니다 :
l(t('My link'), NULL, array('fragment' => FALSE));
우리에게주는 것 :
<a href="/#">My link</a>
고맙게도 다음과 external => TRUE
같이 전달하여 슬래시를 제거 할 수 있습니다 .
l(t('My link'), NULL, array('external' => TRUE, 'fragment' => FALSE));
우리에게주는 것 :
<a href="#">My link</a>
팔. html 문자열을 수동으로 연결하지 않으려면 어떻게해야합니까?
추신:
실제로 정상적인 상황에서 PHP에서 이와 같은 링크를 인쇄하는 것이 좋습니다. 자바 스크립트가 없으면 모든 링크가 사용자를 페이지 맨 위로 이동시킵니다 ( 약간의 놀랍게도 행동이 지정됩니다 ). 아마도 자바 스크립트없이 작동하는 곳을 가리켜 야합니다.
링크가 실제로 자바 스크립트에서만 이해되는 경우 (js 전용 슬라이드 쇼 또는 기타 컨트롤과 같은) 자바 스크립트로 페이지에 링크를 추가하는 것이 좋습니다. 또는 소스에 실제로 넣으려면 display:none
기본적으로 'd' 인지 확인하십시오 . Drupal은 .js
html에 클래스가있어 자바 스크립트가있을 때이를 보여줍니다.
javascript:void(0)